C语言学习笔记 lesson17 字符串处理函数之fgets与gets
2016-10-08 19:49
1091 查看
字符串输入函数
scanf 每次只能接收一个单词,不能接收整行的输入gets函数用于接收整行的输入,导致缓存区溢出,在新标准中C11被废弃 自动过滤换行
fgets 用于接收整行输入.传递三个参数 (数据存储的空间,读入数据最大的长度,stdin) 会输出换行
比较fgets和gets
#include <stdio.h>#define STRLEN 225
int main()
{
char str[STRLEN] = { 0 };
while (fgets(str,str,stdin)!= NULL &&str[0]!='\n')
{
printf(str);
}
printf("Done!");
while (gets(str,STRLEN)!=NULL&&str[0] != '\n')
{
printf(str);
}
return 0;
}
输入两次12345回车,再输入回车
fgets 输入换行 循环结束 fgets 会读取换行
gets 输入换行 循环无法结束 gets 不会读取换行符
比较fgets和gets
#include <stdio.h>#define STRLEN 10
int main()
{
char str[STRLEN] = { 0 };
while (fgets(str,str,stdin)!= NULL &&str[0]!='\n')
{
printf(str);
}
printf("Done!");
while (gets_s(str,STRLEN)!=NULL&&str[0] != '\n')
{
printf(str);
}
return 0;
}
当输入长度超过10的字符串时,fgets会全部读取,但不是一次读取完。每次读取长度减1的字符串
使用gets_s 时会出现异常。
比较fgets和gets
#include <stdio.h>#define STRLEN 10
int main()
{
char str[STRLEN] = { 0 };
while (fgets(str,str,stdin)!= NULL &&str[0]!='\n')
{
fputs(str,stdout);
puts(str)
}
return 0;
}
fputs直接输入原字符串
puts 先输出换行,再输出原字符串
相关文章推荐
- 20161216C语言基础17_字符串处理函数之fgets与gets
- 20161216C语言基础17_字符串处理函数之fgets与gets
- 20161216C语言基础17_字符串处理函数之fgets与gets
- 20161216C语言基础17_字符串处理函数之fgets与gets
- 20161216C语言基础17_字符串处理函数之fgets与gets
- 20161216C语言基础17_字符串处理函数之fgets与gets
- 20161216C语言基础17_字符串处理函数之fgets与gets
- 20161216C语言基础17_字符串处理函数之fgets与gets
- 20161216C语言基础17_字符串处理函数之fgets与gets
- Poedu_C语言_lesson24_20161006_字符串处理函数_fgets与gets
- 学习笔记PHP字符串处理函数总结
- C语言学习笔记之常用的字符串处理函数
- C语言学习笔记之字符串I/O(gets()函数和puts()函数)
- 32位汇编语言学习笔记(41)--fgets等函数的使用
- C/C++学习笔记29:字符串处理函数
- C/C++语言函数学习(4)字符串处理函数
- C++字符串处理函数学习笔记
- 学习笔记之10-字符和字符串常用处理函数
- PHP字符串处理函数示例学习笔记
- php学习笔记(五)字符串及其相关处理函数