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] ,则因编译器而异。
你想要指针的方法给中文插入空格打印输出,你的代码错在1、结束符号要写0或者'\0',不能写“\0”。2、一个中文是2个英文字符大小,所以每次循环指针要取2位打印。
所以上面那个指针的代码要改成:
#include <stdio.h>
int main()
{
char* p= "红橙黄绿青蓝紫"
while(*p!=0)
{
printf("%c%c ",*p,*(p+1))
printf(" ")
p+=2
}
}