C语言求教,字符串长度问题 谢谢大家啦

以下程序的输出结果是
main()
{char s []=” \ \ 141 \ 141abc \t”;}
printf(“%d\n”,strlen(s));
}
A 9 B 12 C 13 D 14
答案是A 请教下 他是怎么来算的 谢谢大家了

答案是A

\ \ 141 \ 141abc \t
这个字符串中包含的字符如下:
\\:转义为反斜杠字符'\'
1
4
1
\141: 转义为一个三位八进制数(这个算一个)
a
b
c
\t: 转义为水平制表符
共9个

买一送一,转义字符表也贴给你看看吧:
转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) 008
\f 换页(FF) 012
\n 换行(LF) 010
\r 回车(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜杠 092
\? 问号字符 063
\' 单引号字符 039
\" 双引号字符 034
\0 空字符(NULL) 000
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-14
\\
1
4
1
\141
a
b
c
\t
一共9个
第2个回答  2009-02-14
答案选择A是不错的
"\\"是字符'\'
然后是141分别代表字符'1','4','1'
"\141"代表八进制数字97也就是字符'a'
abc分别代表字符'a','b','c'
最后就是\t它是一个制表符
所以总共9个字符。
第3个回答  2009-02-14
函数strlen的作用是返回字符串str中的字符个数,包括其中的空格和转义字符,但不包括结束标记'\0'。此字符串中包含两个空格,三个转义字符\\,\141和\t,还有4个字符:141,a,b,c.
第4个回答  2009-02-15
是9个
\\代表\
141不用说
\141代表八进制数141
abc不用说
\t 代表跳到下一个Tab
用到的是转义字符
第5个回答  2009-02-15
上面程序你输入的不规整,我重新写了一下:

#include<stdio.h>
main()
{
char c='\141';
char s[]="\\141\141abc\t";
printf("%d\n",strlen(s));
printf("%c\n",c);
getch();
}

说明:

\\ 是个转义字符代表 \
\141 转义成字符是 a (141是个八进位数)
\t 是个制表符

这样 s[] 就变成了 "\141aabc\t"

结果为 9
相似回答