黑马程序员技术交流社区
标题:
关于字符串长度
[打印本页]
作者:
Mr.Yan
时间:
2015-11-24 23:58
标题:
关于字符串长度
char str[ ]="ab\013\r\082\\\""; //
printf("%d",strlen(str));
上面程序片段的输出结果是 ( )。
A. 4 B. 9 C. 10 D. 11
该睡了,明天解答{:2_36:}
作者:
小贼船
时间:
2015-11-25 15:24
是D吗。。。
作者:
sd6628611
时间:
2015-11-25 16:19
答案是A,4个
a的长度是1
b的长度是1
\013是一个八进制的数,所以长度也是1
\r把光标换到当前行的开头,然后\r后面的字符覆盖原来已经打印的字符.所以之前的长度白算
另外\082就不同了,先遇到8,不属于八进制的东西,八进制的“解析”就结束了 所以相当于ascii码的8和2两个字符组成的子串,所以长度就是2。
\\代表一个反斜线字符'\'长度是1
\"代表一个双引号字符'"'长度也是1
所以最后答案2+1+1=4
作者:
韦德460
时间:
2015-11-25 23:28
楼上说得好!
作者:
Newbee_123
时间:
2015-11-26 20:02
完美答案。。
作者:
刘耀宗
时间:
2015-11-26 20:06
四个遇到杠0就截止了…字符串长度和数组长度要好好区分
作者:
106105076
时间:
2015-11-26 20:30
不是遇到\0就结束了吗??
作者:
IPswhatb“is”
时间:
2015-11-26 23:47
大神解答,,,但是还没看懂
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2