字符串的长度是从字符串的开始字符起算,直到遇到字符串结束符 '\0' 以前的字符个数。
例如: char s[]="abc 123\0XYZ"; printf("%d\n",strlen(s)); 输出7。
这里,计算字符串长度,只计入 abc 3个字母 加 1个空格 加123 三个数字,共7个。字符串长度 是 7个字节。后面的 XYZ 不算在字符串长度内。
例如:char s[]="abc\066123\0XYZ"; printf("%d\n",strlen(s)); 输出7。
与上面不同的是 少了一个空格符,多了一个转义字符 '\066' , 字符串的长度 统计到 字符串结束符 '\0' 以前。共7个。 1个转义字符由多个字符组成,但只算1个。
例如,在这种情况下:char s[]="abc 123"; printf("%d\n",strlen(s)); 输出7。
才符合 这个串的字符个数等于该串的长度。它不含转义字符,有一个隐含的字符串结束符 '\0',没有占内存的多余字符。占内存数 用 sizeof(s) 计算。
例如: char s[]="abc\066123\0XYZ"; printf("%d\n",sizeof(s)); 输出:12 (这是占内存数),它要计入 abc 3个字母 加 1个转义字符\066 加123 三个数字, 再加字符串结束符\0, 加 XYZ, 加 隐含的字符串结束符\0。共 12个字节。
温馨提示:答案为网友推荐,仅供参考