| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1282 人关注过本帖
标题:字符串长度问题
只看楼主 加入收藏
lsqing
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-3-15
收藏
 问题点数:0 回复次数:7 
字符串长度问题
小弟遇到一个有关求字符串长度的难题:
1)printf("%d\n",strlen("s\n\016\0end"));其结果是:3
2)printf("%d\n",strlen("s\n\01"));其结果是:3
3)printf("%d\n",strlen("s\n\0"));其结果是:2
4)printf("%d\n",strlen("s\n")):其结果是:2
对于以上四种情况,小弟有几个问题始终搞不明白:

一是字符串的结束符'\0'算不算字符串长度?
二是为什么"s\n\01"的长度为3,而"s\n\0"的长度却为2,按理说遇到'\0',字符串应结束,那么这两个字符串的长度应该一样?
三是"s\n\0" 与"s\n"的有没有区别,什么其长度是一样的?

急求各位GGJJMMDD的帮助?
搜索更多相关主题的帖子: quot 字符 长度 printf strlen 
2005-03-15 17:09
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
收藏
得分:0 
看了下  具体是什么我不知道   但我有一点猜想
有可能'\01'  也是一个转意字符
同里'\016'也可能是一个转意字符
等高手来解决吧  看我的猜想对不对

动于心而静如水
2005-03-15 18:53
redalert
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2005-2-4
收藏
得分:0 
还没学到这,加油。

能学多少是多少,不学是傻瓜!
2005-03-15 19:26
形影随从
Rank: 1
等 级:新手上路
威 望:1
帖 子:188
专家分:0
注 册:2005-3-15
收藏
得分:0 
\0 :是字符串的结束符它是不算长度的。
\01 :虽然和 \0 很相似,但它是一个八进制的转意字符,以0开头后面跟数字的是八进制,象你第一个输出的最后一个也有 \0end 但他后面跟的是字母了,这样就是字符串结束符了。
s\n\0 和 s\n : 这两个当然是有区别的,你象假如我们要用循环对字符串进行操作时,我们就可以用 \0 来做为循环的判断条件了。

不知道是否完全正确,请指正!!

2005-03-15 20:38
lsqing
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-3-15
收藏
得分:0 
谢谢 楼上的几位大虾的指点,小弟有点明白了。多谢多谢!
2005-03-16 21:05
fangwang0829
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-3-19
收藏
得分:0 
2007-04-17 20:47
w5560
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-4-16
收藏
得分:0 
C语言的细节的东西就是多啊!!!!
2007-04-17 21:06
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用lsqing在2005-3-15 17:09:00的发言:
小弟遇到一个有关求字符串长度的难题:
1)printf("%d\n",strlen("s\n\016\0end"));其结果是:3
2)printf("%d\n",strlen("s\n\01"));其结果是:3
3)printf("%d\n",strlen("s\n\0"));其结果是:2
4)printf("%d\n",strlen("s\n")):其结果是:2
对于以上四种情况,小弟有几个问题始终搞不明白:

一是字符串的结束符'\0'算不算字符串长度?
二是为什么"s\n\01"的长度为3,而"s\n\0"的长度却为2,按理说遇到'\0',字符串应结束,那么这两个字符串的长度应该一样?
三是"s\n\0" 与"s\n"的有没有区别,什么其长度是一样的?

急求各位GGJJMMDD的帮助?

1.\016表示8进制数,算一个字符,当碰到\0时,此时字符串结束,之后的"end"不被记录在其中.
2.同理\01表示一个字符
3.\0结束
4....不用说了

"s\n\0"和"s\n"本质上没有区别.字符串会自动在最后补加一个'\0';


倚天照海花无数,流水高山心自知。
2007-04-17 21:27
快速回复:字符串长度问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014965 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved