首先,思维导图奉上:
一、概念:用双引号括起来的一串字符
如下所示:
#include <stdio.h>
int main()
{
printf("hello\n");
return 0;
}
其中,hello即是字符串
二、结束标志\0
如下所示:
#include <stdio.h>
int main()
{
char arr1[] = "abc";
char arr2[] = { 'a','b','c','\0' };
printf("%s\n", arr1);
printf("%s\n", arr2);
}
可以看到,我们在输入代码时,“abc”最后并没有输入\0,是因为abc后隐藏了一个\0,如果arr2没有终止字符\0,则打印结果为:
可以看到出现了乱码,这是因为代码在执行时不断寻找终止符号\0,但是并未找到,所以才会出现一直向后寻找而出现乱码的情况
三、字符长度
如下所示:
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[] = "abc";
char arr2[] = { 'a','b','c' };
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%d\n", strlen(arr1));
printf("%d\n", strlen(arr2));
return 0;
}
这里我们采用错误的编写方式,则最终输出为:
可以看到,输出长度为42,这是一个随机数,然而,当我们加上终止符号时:
#include <stdio.h>
#include <string.h>
int main()
{
char arr1[] = "abc";
char arr2[] = { 'a','b','c' ,'\0'};
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%d\n", strlen(arr1));
printf("%d\n", strlen(arr2));
return 0;
}
则输出结果为:
这时发现一切正常了,这就是终止符号的作用;我们看到的字符串长度输出函数为strlen(arr1),与<stdio.h>相对应,<string.h>存放了strlen函数,所以#include多了引了一个头文件。
注意:我们会发现,这里的\0无论是否隐藏,它都不会占用长度。
相关的代码我会同步至码云上,欢迎交流与学习:C语言学习之路: C语言学习当中做的相关代码 - Gitee.com