优先使用fgets()函数

    xiaoxiao2024-12-08  65

    虽然用gets()时有空格也可以直接输入,但是 gets()函数有一个非常大的缺陷,即他不检查预留存储区是否能够容纳实际输入的数据,这样很不安全。如果输入的字符数目大于数组的长度,就会发生内存越界,所以编程时建议使用fgets();

    #include<stdio.h> char *fgets(char *s, int size, FILE *stream);

    fgets()虽然比gets()安全,但是是要付出代价的,有三个参数,他的功能是从一个 stream流中读取 size个字符存储到字符指针变量 s 所指向的内存空间。他返回一个指针,指向字符串中的第一个字符的地址。

    #include<stdio.h> int main(void) { char str[20]; printf("请输入一个字符串:"); fgets(str, 7, stdin); printf("%s\n", str); return 0; }

    #include<stdio.h> int main(void) { char str[30]; char *string = str; printf("请输入字符串:"); fgets(string, 29, stdin); printf("%s\n", string); return 0; }

    最新回复(0)