
本文共 2056 字,大约阅读时间需要 6 分钟。
目录
字符数组和字符串小知识点总结
//1、字符串是以0 或者 '\0'结尾的字符数组。(数字0和'\0'是等价的)。
void test1() { //字符数组初始化时,结尾没有数字0 或者 '\0',所以会一直打印,直到遇到数字0 或者 '\0'。 char str1[] = {'h', 'e','l', 'l','o'}; printf("%s\n", str1); }执行结果:
//2、指定长度的字符数组,未初始化的部分默认填0
void test2() { char str2[100] = {'h', 'e','l', 'l','o'}; printf("%s\n", str2); }执行结果:
//3、如果以字符串初始化字符数组,编译器默认会在字符串末尾添加'\0'
void test3() { char str3[] = "hello"; //编译器默认会在字符串末尾加'\0' printf("%s\n",str3);printf("strlen is %d\n", strlen(str3)); // strlen 遇到'\0' 停止,计算结果不包含'\0'
printf("sizeof is %d\n", sizeof(str3)); // sizeof 遇到'\0'不停止,计算结果 包含'\0' }执行结果:
//4、strlen 遇到'\0' 停止,计算结果不包含'\0' ; // sizeof 遇到'\0'不停止,计算结果 包含'\0';
void test4() { char str4[100] = "hello"; //编译器默认会在字符串末尾加'\0' printf("%s\n",str4);printf("strlen is %d\n", strlen(str4)); // strlen 遇到'\0' 停止,计算结果不包含'\0'
printf("sizeof is %d\n", sizeof(str4)); // sizeof 遇到'\0'不停止,计算结果 包含'\0' }执行结果:
//5、strlen 遇到'\0' 停止,计算结果不包含'\0' ; // sizeof 遇到'\0'不停止,计算结果 包含'\0';
void test5() { char str5[] = "hello\0world"; //编译器默认会在字符串末尾加'\0' printf("%s\n",str5);printf("strlen is %d\n", strlen(str5)); // strlen 遇到字符串中间的'\0'停止,计算结果不包含'\0',所以长度为5(即hello)
printf("sizeof is %d\n", sizeof(str5)); // sizeof 遇到'\0'不停止,计算结果 包含'\0',所以长度为12(hello + 中间的'\0' + world + 字符串结尾默认的'\0') }执行结果:
//6、strlen 遇到'\0' 停止,计算结果不包含'\0' ; // sizeof 遇到'\0'不停止,计算结果 包含'\0';
void test6() { char str6[] = "hello\012world"; //' \'为转义字符,'0'为八进制标识,'12'为八进制数值, .'\012' 对应的十进制数10 (又对应的是换行符) printf("%s\n",str6);printf("strlen is %d\n", strlen(str6)); // strlen 结果为11(hello + '\012' + world )
printf("sizeof is %d\n", sizeof(str6)); // sizeof 结果为12 (hello + '\012' + world + 字符串结尾的'\0') }执行结果
C 语言常用字符串数组处理函数
1、计算字符串数组长度
strlen(字符串数组名)
说明: 1)遇到'\0' 或者数字0停止; 2)计算结果不含字符串结束标志'\0';2、字符串拷贝
strcpy(目的字符串数组名, 源字符串数组名)
说明: 1)拷贝时会连字符串结束标识'\0'一起拷贝;3、 字符串拼接
strcat(目的字符串数组名, 源字符串数组名)4、字符串比较
strcmp(字符串数组名1, 字符串数组名2) 说明: 1)按照ASCII码顺序比较两个字符数组中的字符串,并由函数返回值返回比较结果; 2)返回值如下: • 串1=串2,返回0 • 串1>串2,返回正数 • 串1<串2,返回负数 3)当两个字符串进行比较时,若出现不同字符,则以第一个不同的字符的比较结果作为整个比较结果;5、字符串大小写转换
strupr(字符串数组名) strlwr(字符串数组名)6、sprintf 待补充
7、sscanf 待补充
发表评论
最新留言
关于作者
