strlen

strlen计算长度

strlen在计算长度时,一定要注意计算的字符串中是否含有\0字符(请注意,0和\0是有区别的,0代表数字,\0代表转义字符,值是48),比如你希望算0x1234056的长度,实际计算值strlen是7;如果是这类数据{‘1,’,‘2’,‘\0’, ‘3’},strlen计算出来就是2;这类数据{‘1,’,‘2’,’0’, ‘3’},strlen计算出来是4。
注意:这里’\0’和’0’是有区别的,看ascii码对照表可以知道:
在这里插入图片描述

'\0’的十进制就是0,而’0’的十进制是48;

另外,单说’\0’来说,它是一个字符,作为字符串结尾字符。它是一个字节大小,占8位。因为0x00是16进制,在内存中存放方式是:00000000,而在这8个0最后是一个‘\0’结束符,所以对于整个0x00来说,它在计算机内存中其实和’\0’的表示是一样的。所以在strlen到0x00最后一个0时便会结束,类似{0x1,0x02,0x00,0x03}得到的结果便是2。至于为什么数字0不会失败,因为数字0在内存中占4字节,32bit,而strlen在拷贝时是单字节拷贝,所以还遇不到0的最后一个结束符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值