菜鸟笔记
提升您的技术认知

C/C++字符串长度的计算

char ch1[ 10 ] = {'s','h','\0','h'};

char ch2[] = {"sh\0h"};

char* ch3 = "shh"

(1)strlen()

统计字符串存在多少个有效字符,遇到'\0'结束,不包含‘\0’

strlen( ch1 )   会得到 2

strlen( ch2)   会得到2

strlen( ch3)   会得到3

(2)sizeof

统计字符串所占空间大小,包含‘\0’,只能对字符数组ch1,ch2起作用,如果要使用字符串,必须为字面值

strlen(ch1) 得到10

strlen(ch2) 得到5

strlen(“ssh”) 得到3

(3)C++中特殊情况

c++含有string集合  string str =“sh\0h”;拥有集合自带的length(),和size()函数,都是遇到‘\0’结束,不包括'\0'

str.legth() 和 str.size()都得到2

如果想用strlen,必须将str转化为C语言格式:strlen(str.c_str())得到2