Hướng dẫn how to print each character of a string in c++ - cách in từng ký tự của một chuỗi trong c ++
Ngay bây giờ tôi đang thử điều này: Show
Điều này cũng không hoạt động:
Tôi nhận được lỗi
(Dịch một cách lỏng lẻo từ tiếng Đức) Vậy mã của tôi có gì sai?
hỏi ngày 9 tháng 7 năm 2010 lúc 14:58Jul 9, 2010 at 14:58
2 Bạn muốn:
sizeof cung cấp cho bạn kích thước của con trỏ, không phải chuỗi. Tuy nhiên, nó sẽ hoạt động nếu bạn đã tuyên bố con trỏ là một mảng:
Nhưng nếu bạn chuyển mảng cho chức năng, điều đó cũng sẽ phân rã thành một con trỏ. Đối với các chuỗi, tốt nhất là luôn luôn sử dụng strlen. Và lưu ý những gì người khác đã nói về việc thay đổi printf để sử dụng %c. Ngoài ra, hãy tính đến các bình luận về hiệu quả của MMYERS, sẽ tốt hơn nếu chuyển cuộc gọi đến Strlen ra khỏi vòng lặp:
hoặc viết lại vòng lặp:
Pevik 4.2353 Huy hiệu vàng30 Huy hiệu bạc40 Huy hiệu đồng3 gold badges30 silver badges40 bronze badges Đã trả lời ngày 9 tháng 7 năm 2010 lúc 15:00Jul 9, 2010 at 15:00 6 Một thành ngữ phổ biến là:
Một vài ghi chú:
Dave Yarwood 2.7061 Huy hiệu vàng16 Huy hiệu bạc29 Huy hiệu đồng1 gold badge16 silver badges29 bronze badges Đã trả lời ngày 9 tháng 7 năm 2010 lúc 15:05Jul 9, 2010 at 15:05
Alexandre C.Alexandre C.Alexandre C. 54.6K10 Huy hiệu vàng124 Huy hiệu bạc193 Huy hiệu Đồng10 gold badges124 silver badges193 bronze badges 12 Thay vì sử dụng strlen như đề xuất ở trên, bạn chỉ có thể kiểm tra ký tự null:
Đã trả lời ngày 9 tháng 7 năm 2010 lúc 15:12Jul 9, 2010 at 15:12
Mark ingmammark ingramMark Ingram 70K51 Huy hiệu vàng171 Huy hiệu bạc229 Huy hiệu đồng51 gold badges171 silver badges229 bronze badges 1 Một cách tiếp cận tối ưu hóa:
Hầu hết các chuỗi C được chấm dứt null, có nghĩa là ngay khi nhân vật trở thành 9, vòng lặp sẽ dừng lại. 0 đang di chuyển con trỏ một byte, sau đó phá hủy nó và vòng lặp lặp lại.Lý do tại sao điều này hiệu quả hơn 1 là do Strlen đã lặp qua chuỗi để tìm độ dài, do đó bạn sẽ lặp đi lặp lại hai lần (một lần nữa) với 1.Đã trả lời ngày 28 tháng 12 năm 2019 lúc 20:17Dec 28, 2019 at 20:17 3 Trả về số byte theo yêu cầu của con trỏ 4. Bạn nên thay thế nó bằng 5 sẽ là chiều dài của chuỗi bạn đang cố gắng hiển thị.Ngoài ra, có lẽ bạn nên thay thế 6 bằng 7 vì bạn đang hiển thị một ký tự.Đã trả lời ngày 9 tháng 7 năm 2010 lúc 15:00Jul 9, 2010 at 15:00
Một thành ngữ phổ biến là:Jacob 0
5 Tăng 6 và trả về giá trị cũ được thu hút bởi 6.Jul 9, 2010 at 15:03
8 in một chuỗi kết thúc null, không phải là char. Đây là nguyên nhân của vi phạm truy cập của bạn.KenEDave Yarwood10 silver badges6 bronze badges 2.7061 Huy hiệu vàng16 Huy hiệu bạc29 Huy hiệu đồng
Đã trả lời ngày 9 tháng 7 năm 2010 lúc 15:05Jul 9, 2010 at 15:02
Alexandre C.Alexandre C.Prasoon Saurav 54.6K10 Huy hiệu vàng124 Huy hiệu bạc193 Huy hiệu Đồng47 gold badges235 silver badges343 bronze badges Thay vì sử dụng strlen như đề xuất ở trên, bạn chỉ có thể kiểm tra ký tự null: 0Đã trả lời ngày 9 tháng 7 năm 2010 lúc 15:12Jun 22, 2019 at 15:21
5 Tăng 6 và trả về giá trị cũ được thu hút bởi 6.Jul 9, 2010 at 15:03
8 in một chuỗi kết thúc null, không phải là char. Đây là nguyên nhân của vi phạm truy cập của bạn.JSBձոգչDave Yarwood17 gold badges99 silver badges166 bronze badges 2.7061 Huy hiệu vàng16 Huy hiệu bạc29 Huy hiệu đồng Đã trả lời ngày 9 tháng 7 năm 2010 lúc 15:05 Alexandre C.Alexandre C.Đã trả lời ngày 9 tháng 7 năm 2010 lúc 15:00Jul 9, 2010 at 15:00
Một thành ngữ phổ biến là:Pablo Santa Cruz 1 Một vài ghi chú: Đã trả lời ngày 9 tháng 7 năm 2010 lúc 15:00Jul 9, 2010 at 15:00
Một thành ngữ phổ biến là:Keith Randall Một vài ghi chú: Next: 2Trong C, chuỗi được chấm dứt. Bạn lặp lại trong khi ký tự đọc không phải là ký tự null. 5 Tăng 6 và trả về giá trị cũ được thu hút bởi 6.Đã trả lời ngày 9 tháng 7 năm 2010 lúc 15:12Jul 9, 2010 at 15:12
Mark ingmammark ingramPraveen S 70K51 Huy hiệu vàng171 Huy hiệu bạc229 Huy hiệu đồng2 gold badges42 silver badges69 bronze badges Bạn cần một con trỏ tới char đầu tiên có chuỗi ANSI. 3sẽ làm công việc Thêm vào đó, tất nhiên bạn nên có nghĩa là 5, không phải 3.
Đã trả lời ngày 9 tháng 7 năm 2010 lúc 15:01Jul 9, 2010 at 15:01
UlyssesulyssesULysses 9904 Huy hiệu bạc9 Huy hiệu đồng4 silver badges9 bronze badges Đây là 11 tuổi nhưng có liên quan đến một người đang học C. Tôi không hiểu tại sao chúng ta có tất cả các cuộc thảo luận và bất đồng này về điều gì đó rất cơ bản. Một chuỗi theo nghĩa đen trong C, tức là "Văn bản giữa các trích dẫn" có một kẻ hủy diệt null ngầm sau ký tự cuối cùng. Đừng để cái tên làm bạn bối rối. Trình kết thúc null bằng số 0. Mục đích của nó chính xác là những gì OP cần cho nó: 4Một char trong C là một số nguyên 8 bit với giá trị ASCII số của ký tự tương ứng. Điều đó có nghĩa là nguồn [i] là một số nguyên dương cho đến Char [19], đó là Kẻ hủy diệt NULL sau trận chung kết '.' Nhân vật null là ASCII 0. Đây là nơi vòng lặp chấm dứt. Vòng lặp lặp qua mọi ký tự mà không quan tâm đến chiều dài của mảng. Đã trả lời ngày 21 tháng 5 lúc 10:05May 21 at 10:05
Làm cách nào để in các ký tự riêng lẻ trong một chuỗi?Lớp học công cộng Cá nhân .. công khai void void chính (chuỗi [] args) {. Chuỗi chuỗi = "ký tự" ;. // Hiển thị các ký tự riêng lẻ từ chuỗi đã cho .. System.out.println ("Các ký tự riêng lẻ từ chuỗi đã cho:") ;. // lặp lại thông qua chuỗi và hiển thị ký tự riêng lẻ .. Làm thế nào bạn sẽ in ký tự trong c?printf (định dạng char *, arg1, arg2, triệt) chức năng này in ký tự trên đầu ra tiêu chuẩn và trả về số lượng ký tự được in, định dạng là một chuỗi bắt đầu với % và kết thúc với ký tự chuyển đổi (như C, I, F, D, vân vân.).
This function prints the character on standard output and returns the number of character printed, the format is a string starting with % and ends with conversion character (like c, i, f, d, etc.).
%S hoạt động như thế nào trong c?%C liên quan đến một char (nghĩa là, một ký tự duy nhất), trong khi %s liên quan đến char * (nghĩa là một con trỏ đến một loạt các ký tự, hy vọng kết thúc không).%s deals with a char * (that is, a pointer to an array of characters, hopefully null-terminated).
Có %s trong C không?@nofe %C dành cho một ký tự duy nhất trong khi %s dành cho một loạt các ký tự không kết thúc.%s is for a series of characters null-terminated. |