C语言风格字符串注意点
注意:
- strlen()
- sizeof()
- /转义字符种类
这种写法编译器会自动在结尾填充\0char a[] = "aaas3";
这种写法需要手动填充\0,否则后面会输出多余的内容
char b[] = { 'a','a','a','s','3'};这种写法也要手动添加\0,否则后面会输出多余的内容
char c[6];
c[0] = 'a';
c[1] = 'a';
c[2] = 'a';
c[3] = 's';
c[4] = '3';
c[5] = '\0';这种同第一种
const char* d = "aaas3";
strlen遇到\0结束,不包括\0
char temp1[] = "abc\0abc";
strlen(temp1);//结果为3
sizeof(temp1);//结果为字符数组的大小,也就是8,默认会在结尾填充一个\0,所以指定字符数组存储元素的个数是你字符个数+1,否则就会报错,或者不指定,就像这样。
例:
char temp2[] = "AB\x78\\ab\023";
strlen(temp2);//7
sizeof(temp2);//8
\023表示一个八进制的数
\x78表示一个十六进制的数
\\表示一个\