使用strlen()函数的问题

chara[]={'a','b','c','d'};strlen(a)=7;charb[]={'a','b','c','d','\0'};strlen(b)=4;为什么会... char a[]={'a','b','c','d'};
strlen(a)=7;
char b[]={'a','b','c','d','\0'};
strlen(b)=4;
为什么会有这样的区别?
strlen()函数不是用于字符串的吗,为什么也可以用于字符数组?
展开
 我来答
冰火梦幻
推荐于2017-10-05 · TA获得超过2308个赞
知道小有建树答主
回答量:1095
采纳率:57%
帮助的人:431万
展开全部
字符串和字符数组的区别:字符串用字符数组保存,表示的是字符数组首地址到第一个'\0'为止的内容。
你的程序里,strlen(a)等于7,其实是strlen越界访问了。在a的4个字节后面,有一些未使用的内存,那边前3个字节非0,第4个字节是0,所以合起来'\0'前面有7个非0字符。
百度网友dca1f4d
2013-12-30 · TA获得超过168个赞
知道答主
回答量:50
采纳率:0%
帮助的人:49.1万
展开全部
简单说,字符串本质就是字符数组
如字符串“abcd”=字符数组{'a','b','c','d','\0'}
'\0'是结束符,不计入字符数,所以strlen(b)=4
strlen(a)=7的原因是原数组无结束符,而'd'之后的值是随机的、未知的,刚好第八个值是'\0’
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a31397712
2013-12-30
知道答主
回答量:10
采纳率:0%
帮助的人:3.7万
展开全部
strlen就是用于字符数组的~在C语言里字符数组和字符串相差不了多少
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式