首页 > 代码库 > C++ 浅谈 strlen 与 sizeof的区别

C++ 浅谈 strlen 与 sizeof的区别

先举个栗子:

字符串数组跟字符串指针,然后分别使用sizeof跟strlen看输出结果。

char strA[] = "2017-7-19";

char *strB = "23333";

 

cout <<sizeof(a)<<ends<<sizeof(b)<<endl;

以上输出 10  4;

a字符串数组长度为10,因为其包含了结束符‘\0‘;

b字符串指针的长度是4,(32位机子下指针长度都是4,其他类型一致,无论指向多长的字符串)

倘若想测试最后一位是不是,循环到最后一位并且做个判断是不是‘\0‘即可。

 

cout <<strlen(a)<<ends<<strlen(b)<<endl;   【注意这里strlen的参数是char的类型】

以上输出 9 5;

strlen实际返回的是字符串的长度,即原本字符串数组中保存的数据长度/字符串指针中保存的数据长度。

C++ 浅谈 strlen 与 sizeof的区别