C语言中没有字符串这种类型,只能通过字符数组来模拟字符串
C风格的字符串是以零结尾的字符串
char str1[100]={'a','b','c'};//指定了长度,那么剩下的部分补充为0
//不指定长度
char str2[]={'a','b','c'};
char str3[]={'e','f','g','\0'};
//通过字符串初始化字符数组 并且追加】、0
char str4[]="abcd";
char str5[4]="abcd";//错误,数组越界,因为最后还会追加'\0'
sizeof(str1) ;//大小为100
sizeof(str2);//大小为3;
sizeof(str3);//大小为4;
sizeof(str4);//大小为5(包含最后一个\0)
strlen(str4);//结果为4,求字符串的长度,不包括'\0';实际是到‘\0’结束的位置。
strlen(str1);//结果为3,因为'c'之后的全部复位‘\0’
strlen(str2);//结果不确定,因为不知道什么时候能遇到‘\0’
char * s = "abcde";
char str[] = "abcde";
printf("%d\n", sizeof(s)); //4
printf("%d\n", strlen(s)); //5
printf("%d\n", sizeof(str)); //6
printf("%d\n", strlen(str)); //5

本文深入解析C语言中字符串的处理方式,包括字符数组初始化、字符串长度计算、sizeof与strlen的区别等核心概念。通过实例说明了如何正确使用字符串,并强调了C语言中字符串是以零结尾的特点。
178

被折叠的 条评论
为什么被折叠?



