C++
string s1="string_length_test";
cout<<s1.length()<<endl;//输出18,不包括最后的结束符cout<<s1.size()<<endl;//输出18,不包括最后的结束符
cout<<strlen(s1.c_str())<<endl;//输出18,不包括最后的结束符
C
c类型的字符串是以\0结尾的字符数组。
sizeof可以计算字符串长度,但是参数必须是字符串字面值,而且计算的值包括最后的\0标志,比如cout<<sizeof("hello")<<endl;输出6。
sizeof 与strlen()
sizeof可计算数组的长度,分为指明长度时和为显示指明长度时:
而strlen只是计算字符数组的实际长度:
char c[9] = {'a', 'b'};
9 printf("c---%d\n", strlen(c));//2
10 printf("sizeof------%d\n", sizeof(c));//9
11 char cc[] = {'a', 'b'};
12 printf("cc strlen---%d\n", strlen(cc));//4
13 printf("sizeof --- %d\n", sizeof(cc));//2
14 char c1[] = "hello";
15 printf("c---%d\n", strlen(c1));//5
16 printf("sizeof------%d\n", sizeof(c1));//6
17 char c2[9] = "hello";
18 printf("c---%d\n", strlen(c2));//5
19 printf("sizeof------%d\n", sizeof(c2));//9