用scanf("%s",array); 的话遇到空格就停止接收后面的字符了,那怎么才能接收带空格的字符串呢?
1.用 gets() ,它可以接收带空格的字符串, 直到回车才结束输入
char buf[80]={0};
gets(buf); //可以读取空格, 回车结束输入
2.使用"%[^\n]" 也是可以接收输入一个带空格的字符串,直到回车结束接收
char buf[10] = {0};
scanf("%[^\n]",buf); //可以读取空格,回车结束输入
注意:scanf_s("%s",buf,10); 不能接收带空格的字符串输入,虽然它的指定长度是10, 但是遇到空格时即使没有满10个字符它也自动结束输入了。
[…]和[^…]是scanf中一种很少见到但是很有用的转换字符串
#include <stdio.h>
main()
{
char strings[100];
scanf("%[1234567890]”,strings);
printf(“%s”,strings);
return ( 0 );
}
运行输入:125eqe后, 打印结果是 125.
它的作用是从输入的第一个字符开始算起,到地n个字符如果都是中括号中的字符,而第n+1个字符不是这个中括号中的字符,则提取前面n个字符