查看: 129|回复: 5
收起左侧

strlen获取字符串长度,为什么碰到0x00就停止了呢

[复制链接]

12

主题

183

帖子

549

积分

高级技术员

 楼主| 发表于 2017-6-27 12:35 | 显示全部楼层 |返回版面|阅读模式
strlen获取字符串长度,为什么碰到0x00就停止了呢?

52

主题

1763

帖子

5570

积分

高级工程师

发表于 2017-6-27 13:31 | 显示全部楼层 |返回版面
要不然呢?

C语言入门书上面没讲字符串结束么?

8

主题

123

帖子

369

积分

资深技术员

发表于 2017-6-29 18:03 | 显示全部楼层 |返回版面
字符串的结束就是0x00,不停止就不对了

26

主题

103

帖子

309

积分

资深技术员

发表于 2017-6-29 18:19 | 显示全部楼层 |返回版面
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。

16

主题

159

帖子

477

积分

资深技术员

发表于 2017-6-29 19:23 | 显示全部楼层 |返回版面
0x00在ASII码字符串中,代表着最后一位,没有意义,所以过滤掉了

15

主题

149

帖子

447

积分

资深技术员

发表于 2017-6-29 19:33 | 显示全部楼层 |返回版面
字符串的规定就是这样的,没有为什么。这样才是正常的,不然字符串就没结束了。
您需要登录后才可以回帖 登录 | 注册 手机登录

本版积分规则

分享 快速回复 返回顶部 返回列表