/*
2022.06.02
目的:
strlen函数求字符串长度和字符数组的长度
理论:
1.计算字符串的库函数;
2.strlen函数遇见空字符’\0’时就立即结束返回;
3.ASCII的值是'0'表示空字符,即'\0';
功能:
*/
#include<stdio.h>
#include<string.h>
int main(void)
{
char cCh1 = 0x00; /* 16进制0x00翻译字符为’\0’*/
char cCh2 = '\0'; /* \0 的ASCII码值是0,表示一个字符串结束的标志空字符,表示的是转义字符 */
char cCh3 = '0'; /* 字符0的ASCII码值是48,不是空字符 */
int iInt4 = 0; /* 整数0,ASCII码的值是0,字符表示空字符 */
char* str1 = "abc"; /* 系统自动默认会在后面给字符串加上空字符\0,是将其当成了一个整体,相当于字符串为“abc\0” */
char* str2 = "ab\0c"; /* 因为中间有\0,所以提前结束了计数 */
char* str3 = "ab\\0c";/* 第二个斜杠被第一个斜杠转义,“\\0”表示的“\\”和“0”两个字符 */
char* str4 = "abc0d"; /* 字符串中的0代表的是字符0,而不是数字0 */
char* str5 = "0"; /* 这个表示的是字符串,由'0'和'\0'两个字符组成 */
char arry1[5] = {'1','2','3','4','5'}; /* 这是一个字符数组,他里面存放的并不是字符串(无‘\0’),只是一系列字符,因为该数组中没有遇到空字符,所以会一直寻找,直到找到空字符,所以才会有随机长度 */
char arry2[5] = {'1','2','3','4','\0'}; /* 因为第五个元素是‘\0’*/
char arry3[5] = {'1','2','3','4',0}; /* 因为数字‘0’等价于‘\0’*/
char arry4[5] = {'0','0','0'}; /* 因为该数组是部分初始化,所以除了前三个元素是字符‘0’外面,其余都是自动填充的数字‘0’,数字‘0’等价于‘\0’,所以计数结束于第四个元素*/
char arry5[5] = {'1','2','3','4','0x00'}; /* 一个16进制的字符是用4位二进制来表示的,1个字节是8位,那么4位就是半个字节,所以16进制的字符是半个字节大小 */
char arry6[5] = { '1','2','3','4',0x00}; /* 因为16进制的‘0x00’翻译字符是‘\0’*/
printf("Line = %d, ASCII = %d\n", __LINE__, cCh1);
printf("Line = %d, ASCII = %d\n", __LINE__, cCh2);
printf("Line = %d, ASCII = %d\n", __LINE__, cCh3);
printf("Line = %d, ASCII = %d\n", __LINE__, iInt4);
printf("Line = %d, strlen(str1) = %d\n", __LINE__, strlen(str1));
printf("Line = %d, strlen(str2) = %d\n", __LINE__, strlen(str2));
printf("Line = %d, strlen(str3) = %d\n", __LINE__, strlen(str3));
printf("Line = %d, strlen(str4) = %d\n", __LINE__, strlen(str4));
printf("Line = %d, strlen(str5) = %d\n", __LINE__, strlen(str5));
printf("Line = %d, strlen(arry1) = %d\n", __LINE__, strlen(arry1));
printf("Line = %d, strlen(arry2) = %d\n", __LINE__, strlen(arry2));
printf("Line = %d, strlen(arry3) = %d\n", __LINE__, strlen(arry3));
printf("Line = %d, strlen(arry4) = %d\n", __LINE__, strlen(arry4));
printf("Line = %d, strlen(arry5) = %d\n", __LINE__, strlen(arry5));
printf("Line = %d, strlen(arry6) = %d\n", __LINE__, strlen(arry6));
return 0;
}
/*
程序运行结果:
Line = 21, ASCII = 0
Line = 22, ASCII = 0
Line = 23, ASCII = 48
Line = 24, ASCII = 0
Line = 29, strlen(str1) = 3
Line = 30, strlen(str2) = 2
Line = 32, strlen(str3) = 5
Line = 34, strlen(str4) = 5
Line = 38, strlen(arry1) = 19
Line = 40, strlen(arry1) = 4
Line = 42, strlen(arry3) = 4
Line = 44, strlen(arry4) = 3
Line = 45, strlen(str5) = 1
Line = 46, strlen(arry2) = 4
Line = 47, strlen(arry3) = 4
Line = 48, strlen(arry4) = 3
Line = 49, strlen(arry5) = 19
Line = 50, strlen(arry6) = 4
*/
strlen函数求字符串长度和字符数组长度(0,’0‘,“0”,‘\0‘的区别)
最新推荐文章于 2023-10-09 21:38:22 发布