一般情况下我们都会选择用scanf获取字符串,但是当字符串中含有空格时就会出现以下情况
#include<stdio.h>
int main()
{
char arr[10];
scanf("%s",arr);
printf("%s", arr);
return 0;
}
我们发现scanf读到空格就结束了,只读了空格前的那部分
为了解决这种问题,我提供两个解决方法
1、用gets()函数获取
gets()函数可以获取带空格的字符串,直到遇到‘\n’结束
#include<stdio.h>
int main()
{
char arr[10];
gets(arr);
printf("%s", arr);
return 0;
}
2、用scanf("%[^\n]",arr);
当我们喜欢用scanf获取完整字符串时,就可以用scanf("%[^\n]",arr);,但是这种方法有点麻烦,不推荐使用
#include<stdio.h>
int main()
{
char arr[10];
scanf("%[^\n]", arr);
printf("%s", arr);
return 0;
}