1.使用"%[^\n]"也是可以接收输入一个带空格的字符串,直到回车结束接收 charbuf[10]={0};scanf("%[^\n]",buf);//可以读取空格,回车结束输入 注:%[abc]表示字符组合包括a、b和c,如果遇到这三个字符之外的字符,则停止接收。%[^abc]代表字符组合为abc以外的所有字符,至于横杠是否用于指定某个范围的字符...
c语言中输出字符串的函数有printf("%s") puts() fputs()等,字符串中可以是任意的字符,包括空格在内,无特殊处理,如: char str[]="hello world" ;printf("%s\n", str );puts(str);fputs(str,stdin); 但在输入带有空格的字符串时,只能用gets()或fgets(),而不能用scanf("%s") ,...
1.用 gets() ,它可以接收带空格的字符串, 直到回车才结束输入 char buf[80]={0}; gets(buf); //可以读取空格, 回车结束输入 2.使用"%[^\n]" 也是可以接收输入一个带空格的字符串,直到回车结束接收 char buf[10] = {0}; scanf("%[^\n]",buf); //可以读取空格,回车结束输入 注意:scanf_s("...
c语言在运行时不进行边界检查,你用scanf加参数%s来输入,它会读一个字符串进去(遇到回车等特殊字符就结束输入,并在最后补'\0'),至于c是否能容纳这么多,这是由编程者自己来保证c的大小要足够的。所以你的c越界,只能说明是程序错误。这时候正好c[1]后面可以用,所以输出4个字符没有出问题,如...
规定 也可以指定结束符,不过语法比较奇怪 scanf("%[^\n]", s); // 把 \n 作为结束符
(1)scanf函数就是冲缓存里面取字符串,遇到空格或换行符结束 解决方法就是:使用gets(str);一次性读取缓存里面的字符串 (2)你开辟的内存空间就20个char,就只能存储20个char了
① 遇空格、“回车”、“跳格”键。 ② 遇宽度结束。 ③ 遇非法输入。 问题二:scanf()函数不能正确接受有空格的字符串?如: I love you! #include <stdio.h> int main() { char str[80]; scanf("%s",str); printf("%s",str); return 0; } 输入:I live you! 输出:I scanf()函...
字符串输入可以用scanf函数和gets函数。scanf函数是当输入的数据遇到空格就停止。比如输入数据kkkkkk ssssss sssaa11。用scanf("%s",str);得到的str为"kkkkkk",而空格后面的东西不会赋值给str。而使用gets(str);得到的str为kkkkkk ssssss sssaa11。gets函数是将一整行包括空格都赋值给str。对于你给...
int main(){ char s[100]; scanf("%s",s); int i=0; while(s[i]!='\0') { printf("%c%c%c",s[i],s[i],s[i]); i++; } return 0;}
在键盘输入的时候 空格消息表示null代表输入结束 空格前边的值就赋给变量 123空格 由于第一个接收的是字符类型 只能接收'1' 23还在缓冲区里 这时i变量正需要接收10进制的整形数据...所以23就赋给了i 23后边是空格 就停止了 之后s又从缓冲区里接收了 字符串456 后边又是空格 接收停止 ...