字符串和字符的概念与区别

字符串:是由双引号引起来的一串字符字面常量。例如"abcdef"就是一个字符串。

字符:是由单引号引起来的单个字符字母常量。例如'a'  'b' 'c'就是字符。

字符串不同之处字符串的结束标志是一个\0的转义字符。(这是字符没有的特征)

下面是我的编程与调试:

char arr1[] = "abc";

char arr2[] = { 'a','b','c' };字符串和字符的概念与区别_第1张图片

 如图所示,经过调试可以看见arr1字符串常量的是有\0,相反arr2就没有,这就是两者的区别,让我再来试一试打印,再看有何区别。

char arr1[] = "abc";

char arr2[] = { 'a','b','c' };

printf("%s\n", arr1);

printf("%s\n", arr2);

字符串和字符的概念与区别_第2张图片

%s是打印字符串的 直到找到\0才会终止打印 。

所以在打印arr1数组时,只会打印abc因为后面数组后面隐藏着\0,相反arr2数组会打印乱码字体,因为%s在打印过程中在找\0,直到找到才会停止,所以这就是原因。

如果不想出现乱码字体的出现,只需在arr2数组中添加一个\0。

char arr1[] = "abc";

char arr2[] = { 'a','b','c','\0'};

printf("%s\n", arr1);

printf("%s\n", arr2);

字符串和字符的概念与区别_第3张图片

strlen是专门来求字符串长度的库函数,头文件是

接下来我们就来求一下arr1与arr2数组的字符串长度:

char arr1[] = "abc";

char arr2[] = { 'a','b','c'};

int len=strlen(arr1);

printf("%d\n", len);

len=strlen(arr2);

printf("%d\n", len);

 字符串和字符的概念与区别_第4张图片

如图所示,是3和15,为什么会这样呢?因为strlen统计\0之前的字符个数,arr2是一个随机值,跟上面原因一样,直到找到\0,才会停止,所以15是一个随机值。

 

你可能感兴趣的:(c语言)