为了账号安全,请及时绑定邮箱和手机立即绑定

答案为什么是1,3,1 ?不知道是怎么来的,请教一下!

答案为什么是1,3,1 ?不知道是怎么来的,请教一下!

跃然一笑 2023-03-15 22:18:51
看书的时候遇到:对于以下字符串,strlen(s)的值为:(1)char s[10] = { 'A', '\0', 'B', 'C', '\0', 'D' };(2)char s[ ] = "\t\v\\\0will\n";(3)char s[ ] = "\x69\082\n"; 
查看完整描述

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

首先,你要明确:字符串结束的标志是\0。
其次,你要明白:\t,\v是转义字符,是字符常量。
最后,你要知道:strlen( )函数的作用是测试字符串长度(不包括\0)。

char s[10] = { 'A', '\0', 'B', 'C', '\0', 'D' };
当运行strlen(s)时,从起始地址s开始扫描,到\0时结束操作,返回一个整型数1。

char s[ ] = "\t\v\\\0will\n";
在这个字符串中\0前面有3个转义字符\t\v\\,所以返回3。

char s[ ] = "\x69\082\n"; 
\x69 是一个转义字符,意思是十六进制的69在ASCII中所代表的字符。

 


查看完整回答
反对 回复 2023-03-18
?
ITMISS

TA贡献1871条经验 获得超8个赞

遇到\0就表示该字符串结束,后面即使再长也都不参与计算……
所以第一的长度是1,
第二个的\是转移字符,\t表示一个字符,后面同理;
第三个x69是16进制数,其实还是一个字符

明白了么?

查看完整回答
反对 回复 2023-03-18
  • 2 回答
  • 0 关注
  • 61 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信