首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

如何算一个字符指针指向的字符串带有\0的长度

2012-05-23 
怎么算一个字符指针指向的字符串带有\0的长度?比如char *s “abcd\0efg”怎么算指针 s所指的字符串的长度

怎么算一个字符指针指向的字符串带有\0的长度?
比如 char *s = “abcd\0efg”;
怎么算指针 s所指的字符串的长度? strlen(s)=4 sizeof(s)=4 sizeof(*s)=1 显然这种情况这两个函数都不能正确的算出长度? 有说知道 怎么能简单的算出来吗? 谢谢!!

[解决办法]
字符串中间有0叫人怎么算???

strlen都是求以0结束的字符串的.除非你事先知道字符串里面有多少个0,否则不能算.

例:
char *s = “abcd\0efg”;
int n = strlen(s);
int m = n + strlen(s + n);//假设只有两个0


另外sizeof( “abcd\0efg”);也可以求出大小 .包括0;

[解决办法]
strlen(s)=4 表示s指针指向的字符串长度,计算长度时遇到'\0’结束,长度不包括'\0’;
sizeof(s)=4 表示s指针占多少字节!在32位系统中,指针占4个字节;
sizeof(*s)=1 表示s指针指向的类型占多少字节!即char类型占多少字节,实际中char占1个字节.
[解决办法]
strlen(s) = 4就是s所指的字符串的长度啊
[解决办法]
++ 遇到\0结束

探讨
strlen(s) = 4就是s所指的字符串的长度啊

热点排行
Bad Request.