C++中数组strlen
黄舟
黄舟 2017-04-17 15:04:59
0
4
550
char a[] = {'a','b','c'};
cout << strlen(a) << endl;
输出 6

char a[3] = {'a','b','c'};
cout << strlen(a) << endl;
输出 6

char a[4] = {'a','b','c'};
cout << strlen(a) << endl;
输出 3

strlen 会一直往前找直到找到'\0',但是为什么第一第二个会返回 6 呢?
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(4)
迷茫

对无

刘奇

先分析您的代码:

雷雷

进一步理解

雷雷 雷雷

strlen 说明

获取字符串长度

返回 C 字符串 str 的长度。

C 字符串的长度由终止空字符决定:C 字符串的长度等于字符串开头和终止空字符之间的字符数(不包括终止空字符本身)。

这不应该与保存字符串的数组的大小混淆。例如:

char mystr[100]="测试字符串";

定义了一个大小为100个字符的字符数组,但是初始化mystr的C字符串的长度只有11个字符。因此,虽然 sizeof(mystr) 的计算结果为 100,但 strlen(mystr) 返回 11。

左手右手慢动作

字符数组是字符数组,字符串是字符串。只有字符串才有

小葫芦

雷雷

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板