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