JavaScript is required

 Hàm scanf ( "%[^\n]", str) ; tương với lệnh nào sau đây:

A.

getch () ;

B.

getche () ;

C.

macro getchar () ;

D.

gets (str) ;

Trả lời:

Đáp án đúng: D


Hàm `scanf("%[^\n]", str);` đọc một chuỗi ký tự từ đầu vào chuẩn (stdin) cho đến khi gặp ký tự newline (`\n`). Điều này tương đương với hàm `gets(str);`, cũng đọc một dòng từ đầu vào chuẩn vào chuỗi `str`. Tuy nhiên, cần lưu ý rằng hàm `gets()` không an toàn vì nó không kiểm tra kích thước của bộ đệm, có thể dẫn đến tràn bộ đệm. Trong khi đó, `scanf` với định dạng `%[^\n]` có thể an toàn hơn nếu sử dụng giới hạn kích thước, ví dụ `scanf("%99[^\n]", str);` để tránh tràn bộ đệm (giả sử `str` có kích thước 100). Các hàm `getch()` và `getche()` đọc một ký tự từ bàn phím mà không cần nhấn Enter, và `getchar()` đọc một ký tự từ đầu vào chuẩn sau khi nhấn Enter. Macro `getchar()` cũng tương tự như hàm `getchar()`. Vì vậy, `gets(str)` là đáp án gần đúng nhất với chức năng của `scanf("%[^\n]", str);`.

Câu hỏi liên quan