大家好,我是教授.F
我们都知道,scanf_s函数不能输入带有空格的字符串,遇到空格结束输入,并且需要人为的加上字符结束标志'\0'。但是我们用scanf_s输入字符串时,输入空格,编译器并不会输出。所以我就想了一个招式,来跟scanf_s做斗争。
例子如下:
#include<stdio.h>
int main()
{
char str[11];
int i;
for (i = 0; i < 10; i++)
{
scanf_s("%c", &str[i]);
}
str[i] = '\0';
i = 0;
while (str[i] != '\0')
{
printf("%c", str[i]);
i++;
}
return 0;
}
我们仅仅只需要加上str[i] = '\0';这个语句,这个问题就完美解决了。
在这里,我也顺便补充一下C语言中,其他输入、输出函数的知识点。
gets():
gets(字符数组名);只能输入一个字符串,遇到回车结束输入,并且自动将回车符'\n'转换为结束标志'\0'。
puts():
puts(字符数组名);一个puts()函数可以输出一个字符串,输出后会自动换行。