字符串长度函数如何计算?从开始到第一个\0

strlen(werwer)和strlen(wer\0wer)分别是多少?第一个是7后者3,为什么?\0与空格是等价的把?... strlen(wer wer)和strlen(wer\0wer)分别是多少?
第一个是7后者3,为什么?\0与空格是等价的把?
展开
 我来答
滕苑博05
2018-03-31 · TA获得超过1.8万个赞
知道小有建树答主
回答量:121
采纳率:42%
帮助的人:2.3万
展开全部

首先要分清楚:字符数组和字符串的关系。
字符串存放在数组中,因此,一个字符数组可以存放几个串,单字符串函数只认字符串结束标志'\0'。

1. strlen(wer wer):字符串为"wer_wer"这种字符串常量,系统会在其后自动补上'\0';而求字符串长度的函数strlen()只要遇见'\0';就返回函数值!而且'\0'不算在其中!故返回值为7(空格也算一个字符!)
2. strlen(wer\0wer) 其中的字符串为"wer\0wer"而strlen函数遇到'\0'即结束,故返回值为:3
3. '\0'不是空格,也不是回车!通过ASCII码表,你可知道,'\0'是ASCII码值代表0(NULL);而空格的ASCII码为: '\32' 32 回车的ASCII码值为'\13' 13

_Mr_Computer_
推荐于2017-10-22 · TA获得超过1042个赞
知道小有建树答主
回答量:464
采纳率:100%
帮助的人:263万
展开全部
作者你好!
首先要分清楚:字符数组和字符串的关系!
字符串存放在数组中,因此,一个字符数组可以存放几个串,单字符串函数只认字符串结束标志'\0';
1. strlen(wer wer):字符串为"wer_wer"这种字符串常量,系统会在其后自动补上'\0';而求字符串长度的函数strlen()只要遇见'\0';就返回函数值!而且'\0'不算在其中!故返回值为7(空格也算一个字符!)
2. strlen(wer\0wer) 其中的字符串为"wer\0wer"而strlen函数遇到'\0'即结束,故返回值为:3
3. '\0'不是空格,也不是回车!通过ASCII码表,你可知道,'\0'是ASCII码值代表0(NULL);而空格的ASCII码为: '\32' 32 回车的ASCII码值为'\13' 13
希望对你有所帮助!!!!

=============================================================Mr_Compuerr
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdyzxy
2017-09-27 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3752万
展开全部
应该写成:strlen("wer wer");和strlen("wer\0wer");
\0表示字符串结束,strlen遇到它就会停止计数

在程序常量区这两个字符串存储的内容是
'w','e','r',' ','w','e','r','\0'和'w','e','r','\0','w','e','r','\0'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdghzrn0ea7
2017-10-22 · TA获得超过5215个赞
知道大有可为答主
回答量:2320
采纳率:87%
帮助的人:565万
展开全部
因为'\0'是字符串结束符
所以只算开头3个
空格与'\0'不同的
一个空格算一个长度
'\0'不算长度,而且后面的都不算了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莫谨瑜
推荐于2017-08-20
知道答主
回答量:18
采纳率:100%
帮助的人:4.7万
展开全部
空格和\0不一样哦,在ASCII码表中,\0对应的十进制数为0,而空格对应的十进制数为32,strlen计算字符串长度时,在遇到第一个\0后停止计数,并且记数不包括\0。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式