cuốn sách gpt4 ai đã làm

c - scanf ("%[^\n]") 和 scanf ("%s") 之间的区别?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 06:45:26 29 4
mua khóa gpt4 Nike

Tôi đã đọc về hoạt động của các bộ quét. Qua nghiên cứu và thử nghiệm, tôi đã gặp một vấn đề.

Có thể nào scanf("%[^\n]") hành vi và scanf("%s") Có giống nhau không?

scanf("%s") Tiêu thụ ký tự cho đến khi stdin Các ký tự khoảng trắng được tìm thấy trong, ví dụ \N ký tự. Vì vậy, kết quả sẽ là vàscanf("%[^\n]")Hoàn toàn giống nhau.


Ví dụ:

char str[100];
scanf("%99[^\n]s", str);

So với:

char str[100];
scanf("%99s",str);

所以我的问题是:

  1. Hành vi đó có giống nhau không vì scanf("%s") Dừng ở ký tự khoảng trắng ở cuối (ví dụ: dòng mới)?

  2. Tại sao tôi nên triển khai scanf("%[^\n]")scanf("%s") Bạn đã thực hiện thao tác tương tự chưa?

Cảm ơn bạn rất nhiều.

câu trả lời hay nhất

Có vẻ như bạn đã nhầm tưởng rằng scanset là %s Một số loại sửa đổi, như trong ví dụ của bạn:

scanf("%[^\n]s", str);

Đây là một chuỗi ở định dạng scanf và không phải lúc nào cũng khớp với văn bản ở cuối. 'S'.

ngược lại,%[ là với %s Các chỉ định chuyển đổi hoàn toàn khác nhau. %s Tiêu thụ trước khi bắt đầu và bỏ qua mọi khoảng trắng ban đầu, sau đó dừng ở khoảng trắng. %[ Các khoảng trắng ở đầu hoàn toàn không bị bỏ qua và chỉ dừng lại ở các ký tự không khớp - nó không xử lý các khoảng trắng một cách đặc biệt.

Về c - sự khác biệt giữa scanf ("%[^\n]") và scanf ("%s")? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/58563758/

29 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress