1.函数原型
gets函数的原型为:
# include <stdio.h>
char *gets(char *str);
2.函数功能
gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间。
3.函数使用的注意事项
(1)遇到换行符结束读取,自动在字符串结尾添加
使用 gets 函数输入一个字符串时, 最后一个字符是字符串结束符 \0 。 gets会将用户输入的字符存储在数组中,并在末尾自动添加 \0 来表示字符串的结束。gets会读取用户输入的一整行字符(直到遇到换行符 /n )。 换行符 /n 不会被存储到字符串中,而是被替换为 \0 。
(2)易导致缓冲区溢出
gets函数没有边界检查,可能会导致缓冲区溢出,从而引发安全漏洞。因此,从C11标准开始,gets 函数已被废弃,可以使用更安全的 fgets 函数。
4. gets 函数和 scanf 函数的区别
scanf
函数的输入结束符是空白字符(包括空格、制表符以及换行符等),gets 函数输入结束的标志就是回车换行符。