有关c++的字符结束符

来源:百度知道 编辑:UC知道 时间:2024/09/23 06:08:02
scanf("%s%s",a,b);,输入abc defg并按enter键,则数组a存入四个字符,b存入4个字符。
为什么b不是存入5个呢?难道‘\0’只在a中有作用,在b中没作用?
按一楼的说法,那b中不应该有5个字符吗? (可书上讲有4个字符)

可以算是5个字符吧

因为\0是结尾符,不能被打印,不计在长度以内,所以相当於没有

之前,我还想,为什麼scanf输入的东西,打印时候没有乱码,看来真在后面填个\0

#include<stdio.h>

void main()
{
char a[10], b[10];

scanf("%s%s",a,b);

printf("%s\n%s",a,b);
}

输入 abc defg

a的内容:
0012FF74 61 62 63 00 CC CC CC abc.昍.
0012FF7B CC CC

b的内容:
0012FF68 64 65 66 67 00 CC CC defg.昍
0012FF6F CC CC

我试了一下,结果是
a里放的是"abc"
b里放的是"defg"
他们都是用'\0'来定义结尾的。

用scanf输入字符串系统是不会自己加\ 0的,而且输入时遇到空格就相当于结束了字符串的输入,所以a是有\0的,而输入b后按回车只是换行,并没有结束输入

c语言字符数组的结束位是什么 C程序:输入若干字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。 关于字符数组中结束符的问题 编程统计从键盘输入的字符中数字字符的个数,用换行符结束循环。 空格字符和字符串结束字符的区别 C语言 有关'\0'结束标志符的问题 asp未结束的字符常量求解 C编写,输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII代码值,没行输出三对. C语言编写,输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII代码值,没行输出三对. C语言编写,输入一行字符(用回车结束),每个数字字符的前后都有空格.请编程,把这一行中的数字转换成一个整数