|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 请教一个有关strlen()与sizeof()的问题。
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1792
人关注过本帖
标题:
请教一个有关strlen()与sizeof()的问题。
只看楼主
加入收藏
邹阳
等 级:
侠之大者
威 望:
4
帖 子:124
专家分:402
注 册:2015-10-8
结帖率:
73.68%
楼主
收藏
已结贴
√
问题点数:20 回复次数:6
请教一个有关strlen()与sizeof()的问题。
#include<stdio.h>
int main()
{
char a[]="\t\"\\\n\'\065\08AB";
printf("%d %d",strlen(a),sizeof(a));
}
运行出来,为什么一个是6,一个是11呢?
搜索更多相关主题的帖子:
strlen
sizeof
char
printf
运行
2019-04-07 19:15
举报帖子
使用道具
赠送鲜花
幻紫灵心
来 自:山咔咔里面
等 级:
贵宾
威 望:
53
帖 子:396
专家分:2640
注 册:2018-3-30
第
2
楼
收藏
得分:0
因为 \0 是字符串结束标志符。字符串提前结束了,后面的不算。
saber,别哭.
2019-04-07 20:04
举报帖子
使用道具
赠送鲜花
ZJYTY
等 级:
蝙蝠侠
威 望:
4
帖 子:92
专家分:700
注 册:2018-12-20
第
3
楼
收藏
得分:10
strlen 测量的是字符的实际长度,以'\0' 结束。而sizeof 测量的是字符的分配大小。
char a[]="\t\"\\\n\'\065\08AB";
里面的字符分别为\t,\",\\,\n,\',\065,\0,8,A,B,\0
所以strlen(a) = 6;sizeof(a) = 11;
-------------------------------若有不当之处,敬请谅解-------------------------------
2019-04-07 20:14
举报帖子
使用道具
赠送鲜花
邹阳
等 级:
侠之大者
威 望:
4
帖 子:124
专家分:402
注 册:2015-10-8
第
4
楼
收藏
得分:0
回复 3楼 ZJYTY
请问为什么\065不需要拆分,而\08就可以拆分呢?
I'm a new comer
2019-04-07 21:54
举报帖子
使用道具
赠送鲜花
幻紫灵心
来 自:山咔咔里面
等 级:
贵宾
威 望:
53
帖 子:396
专家分:2640
注 册:2018-3-30
第
5
楼
收藏
得分:10
转义字符 \xxx 其中xxx为八进制ASCLL码
\08A不符合八进制,只能当 \0,8,A 处理
saber,别哭.
2019-04-07 22:19
举报帖子
使用道具
赠送鲜花
ZJYTY
等 级:
蝙蝠侠
威 望:
4
帖 子:92
专家分:700
注 册:2018-12-20
第
6
楼
收藏
得分:0
回复 4楼 邹阳
同五楼
-------------------------------若有不当之处,敬请谅解-------------------------------
2019-04-08 09:11
举报帖子
使用道具
赠送鲜花
邹阳
等 级:
侠之大者
威 望:
4
帖 子:124
专家分:402
注 册:2015-10-8
第
7
楼
收藏
得分:0
回复 5楼 幻紫灵心
谢谢,结合书籍,搞明白了。
I'm a new comer
2019-04-11 00:04
举报帖子
使用道具
赠送鲜花
7
1/1页
1
快速回复:
请教一个有关strlen()与sizeof()的问题。
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.016991 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved