C语言中,可以用gets函数来接收输入的字符串(包含空格)。
格式:gets(字符数组名)
功能:gets函数用于将输入的字符串内容存放到指定的字符数组中,输入结尾的换行符'\n'被换成'\0'存储在该数组中。
举例说明如下:
char str[20] // 定义一个字符数组,大小为20个字节gets(str) // 将用户输入的字符串(可以包含空格)存储到字符数组str中,以回车结束输入
printf("%s", str) // 输出用户输入的字符串(包含空格)
注:使用gets函数时,需将头文件#include<stdio.h>包含到源文件中。
用 scanf("%s",array) 的话遇到空格就停止接收后面的字符了
以下是处理这种情况的一些方法(记录下来以免以后遇到相似的问题):
注 : %[abc] 表示字符组合包括 a、b和c ,如果遇到这三个字符之外的字符,则停止接收。 %[^abc] 代表字符组合为 abc 以外的所有字符,至于横杠是否用于指定某个范围的字符 %[a-z] ,则因编译器而异。
可以通过gets读入整行数据。
gets的功能是读入一行数据,并把换行符替换成字符串结束符,所以如果是空行,那么读到的字符串第一个元素就是结束符。
通过判断gets的结果,即可知道是否为空行。
参考代码如下:
char buf[100]gets(buf)
if(buf[0] == '\0') printf("是空行\n")