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

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

[复制链接]

12

主题

183

帖子

549

积分

高级技术员

 楼主| 发表于 2017-6-27 12:35 | 显示全部楼层 |返回版面|阅读模式
strlen获取字符串长度,为什么碰到0x00就停止了呢?
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

50

主题

1714

帖子

5424

积分

高级工程师

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

C语言入门书上面没讲字符串结束么?
以太网 WIFI 音乐 语音 DLAN airplay  玩具 音箱

7

主题

122

帖子

366

积分

资深技术员

发表于 2017-6-29 18:03 | 显示全部楼层 |返回版面
字符串的结束就是0x00,不停止就不对了
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

14

主题

82

帖子

246

积分

中级技术员

发表于 2017-6-29 18:19 | 显示全部楼层 |返回版面
strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

7

主题

88

帖子

264

积分

中级技术员

发表于 2017-6-29 19:23 | 显示全部楼层 |返回版面
0x00在ASII码字符串中,代表着最后一位,没有意义,所以过滤掉了
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

11

主题

116

帖子

348

积分

资深技术员

发表于 2017-6-29 19:33 | 显示全部楼层 |返回版面
字符串的规定就是这样的,没有为什么。这样才是正常的,不然字符串就没结束了。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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