前言
在C语言中,有很多关于输入字符串的函数。在学习和使用C语言时,我们也无法避免需要输入字符串,因此本文是关于C语言中输入字符串的两个函数 gets() 和 scanf() 的。
一、gets()函数
功能:从标准输入流 stdin 中读取一行,并将其存储在缓冲区中。该行由第一个换行符 ('n') 之前的所有字符组成。
注意:预留存储字符串的空间要足够大.
头文件:
代码语言:javascript复制#include<stdio.h>
代码示例:
代码语言:javascript复制#include<stdio.h>
int main()
{
char arr[20] = { 0 };
gets(arr);
printf("%sn", arr);
return 0;
}
输入与输出:
代码语言:javascript复制hs sfgs jsf,fh
hs sfgs jsf,fh
二、scanf()函数
功能:一般输入字符串、数组、整型...的函数(不多介绍啦)
注意:在使用scanf()函数输入字符串时,遇到空格,默认该字符串输入结束。
解决方案:输入字符串时将 %s 改为 %[^n]s
头文件:
代码语言:javascript复制#include<stdio.h>
代码示例:
代码语言:javascript复制#include<stdio.h>
int main()
{
char arr[20] = { 0 };
scanf("%[^n]s", &arr);
printf("%sn", arr);
return 0;
}
输入与输出:
代码语言:javascript复制fhaa sjgf df
fhaa sjgf df
总结
无论是scanf()函数,还是gets()函数,使用时都具有缺陷
这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位