判断字符串数组中 字符个数题目!!!!

以下程序段的输出结果是:
#include<stdio.h>
#include<string.h>
void main()
{
char s[]="\\141\141abc\t";
printf("%d\n",strlen(s));
}

A) 9
B)12
C)13
D)14

我选了 C 因为 我各人认为 \ 算一个字符 \t 算一个字符!
结果我选了 13个 对下答案正确!
但是我在 VC++ 6.0 上一运行! 不对啊! 结果是 9 !
为什么????
为什么是9啊??????

还有 \ 表示什么?? \\ 表示什么???? 141 有特别意思吗?????
\t 算一个字符吗???
??????????????????
晕啊~~~~~~~~~~
如果我把 "\\141\141abc\t" 改为 "\141\141abc\t"
输出结果为6 !
晕死~~~~~~~~~~~~~~~~~~~~~````````
究竟怎么回事啊~~~~~~~~~~~`

"\\141\141abc\t"中的9个字符分别是‘\','1','4','1','\141'(即‘a’),‘a','b','c','\t'.
其中\\,\141,\t均为转义字符;因为转义字符中有\,所以要想输出\,需要写两个\;\141是用八进制表示的ASCII码,八进制141即97,所以为a,也可以用16进制表示,方法是\xhh,其中x表示16进制,hh是两位16进制数(0~f);\t是水平制表符。

如此分析,"\141\141abc\t"就表示'a','a','a','b','c','\t'这6个字符
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-08-27
\\是一个转义符相当于“\”
\141
\t
都是转义符,只算一个字符
第2个回答  2007-08-27
楼上说的对,你写一个printf("/141");s试试就知道了,应该是个特殊字符,\t应该是相当于tab键,c书上都有写

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网