gets和fgets一些区别总结一下
1、fgets()比gets()安全
为了安全,gets()少用,因为其没有指定输入字符的大小,限制输入缓冲区得大小,如果输入的字符大于定义的数组长度,会发生内存越界,堆栈溢出。fgets()会指定大小,如果超出数组大小,会自动根据定义数组的长度截断。
2、用strlen()检测两者的输入的字符串长度不一样
gets()读取换行符('\n')后,将其丢掉,而fgets()是把回车换行符存入了字符串,所以,gets()的长度只有3和输入的字符串长度一样,fgets()是4,多出来的是回车换行符。