Hàm gets() trong C

Hàm char *gets(char *str) trong Thư viện C chuẩn đọc một dòng từ stdin và lưu trữ nó bên trong chuỗi được trỏ bởi str. Nó dừng khi bắt gặp end-of-file hoặc ký tự newline (dòng mới) được đọc.

Hàm gets() khác hàm scanf() ở chỗ là hàm này chấp nhận các chuỗi có khoảng trống.

Khai báo hàm gets() trong C

Dưới đây là phần khai báo cho hàm gets() trong C:

char *gets(char *str)

Tham số

str -- Đây là con trỏ tới mảng các char nơi chuỗi được lưu trữ.

Trả về giá trị

Hàm này trả về str nếu thành công, và NULL nếu có lỗi hoặc xuất hiện End-Of-File, trong khi không có ký tự nào đã được đọc.

Ví dụ

Chương trình C sau minh họa cách sử dụng của hàm gets() trong C. Bạn sẽ thấy rằng hàm gets() chấp nhận chuỗi có chứa khoảng trống, không giống như hàm scanf():

#include <stdio.h>

int main()
{
   char str[50];

   printf("Nhap mot chuoi: ");
   gets(str);

   printf("Ban vua nhap chuoi: %s", str);

   return(0);
}

Biên dịch và chạy chương trình C trên để xem kết quả.

Theo Tutorialspoint

Bài trước: Hàm getchar() trong C

Bài tiếp: Hàm putc() trong C

Thứ Tư, 29/08/2018 10:10
3,85 👨 52.512
1 Bình luận
Sắp xếp theo
  • Tiến Nam Nguyễn
    Tiến Nam Nguyễn

    #include <stdio.h>

    int main()

    {

    char *str;

    printf("Nhap mot chuoi: ");

    gets(str);

    printf("Ban vua nhap chuoi: %s", str);

    return(0);

    }

    Cho mình hỏi tại sao khi chuyển str thành con trỏ kiểu char thì lại không thể in được chuỗi ra màn hình ạ?

    Thích Phản hồi 04/07/21
    ❖ Lập trình C