A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Mr.Yan 中级黑马   /  2015-11-24 23:58  /  902 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

char str[ ]="ab\013\r\082\\\"";   //
printf("%d",strlen(str));
上面程序片段的输出结果是 ( )。
A. 4            B. 9            C. 10                 D. 11


该睡了,明天解答{:2_36:}

7 个回复

倒序浏览
是D吗。。。
回复 使用道具 举报
答案是A,4个
a的长度是1
b的长度是1
\013是一个八进制的数,所以长度也是1
\r把光标换到当前行的开头,然后\r后面的字符覆盖原来已经打印的字符.所以之前的长度白算
另外\082就不同了,先遇到8,不属于八进制的东西,八进制的“解析”就结束了 所以相当于ascii码的8和2两个字符组成的子串,所以长度就是2。
\\代表一个反斜线字符'\'长度是1
\"代表一个双引号字符'"'长度也是1
所以最后答案2+1+1=4
回复 使用道具 举报
楼上说得好!
回复 使用道具 举报
完美答案。。
回复 使用道具 举报
刘耀宗 来自手机 中级黑马 2015-11-26 20:06:45
地板
四个遇到杠0就截止了…字符串长度和数组长度要好好区分
回复 使用道具 举报
不是遇到\0就结束了吗??
回复 使用道具 举报
大神解答,,,但是还没看懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马