strlen
- 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的最后一个结束符。