C语言中printf("%d\n",strlen("\t\"\065\xff\n"));的输出为何是5?

我上机调试了,确实输出值为5;在我运行printf("%d\n","\t\"\065\xff\n")时,输出的字符串显示为:"5,"5前面有8个空格(可能是制表位),"5后面有两个空格(可能是\xff所至),但该字符串的长度为什么是5?请高手指点!
谢谢!

  printf函数输出strlen()函数执行的结果,strlen()计算字符串"\t\"\065\xff\n"的字符个数,该字符串中有5个元素,所以会输出5,5个元素分别是:
  1、\t:换码符'\t',表示水平制表位(horizeontal tab)。
  2、\" :双引号
  3、\065:字符\后面的数字065是三个八进制数,它是数字5的ASCII码值
  4、\xff:字符\x后面的数字ff是两个十六进制数。
  5、\n : 换行字符。

  这5个字符都是转义字符。转义字符是C语言中表示字符的一种特殊形式。转义字符以反斜'\'开头,后面跟一个字符或一个八进制或十六进制数表示。转义字符具有特定的含义,不同于字符原有的意义,故称转义字符。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-08-27
\t(制表符)
\"(引号)
\065(八进制转义序列,对应的ASCII字符是5)
\xff(十六进制转义序列,对应的十进制ASCII码是255,在扩展ASCII中)
\n(回车换行符)

共5个字符.
第2个回答  2008-08-27
\t(制表符)
\"(引号)
\065(八进制转义序列,对应的ASCII字符是5)
\xff(十六进制转义序列,对应的十进制ASCII码是255,在扩展ASCII中)
\n(回车换行符)

对的
第3个回答  2008-08-27
因为本来就是5本回答被提问者采纳

C语言中printf("%d\\n",strlen("\\t\\"\\065\\xff\\n"));的输出为何是5?
printf函数输出strlen()函数执行的结果,strlen()计算字符串"\\t\\"\\065\\xff\\n"的字符个数,该字符串中有5个元素,所以会输出5,5个元素分别是:1、\\t:换码符'\\t',表示水平制表位(horizeontal tab)。2、\\" :双引号 3、\\065:字符\\后面的数字065是三个八进制数,它是数字5的ASCII码值 4...

求救:printf("%d\\n",strlen("\\t\\"\\065\\xff\\n"));输出的结果是5但是怎么...
都是\\ 惹的祸啊,它有转义的作用 \\t 横向跳到下一制表位置,相当与 Tab ,ASCII 码为 9;\\" 就是 " 了,\\065 八进制,转换为十进制53, 表示ASCII 为53的字符 \\xff 十六进制,转换为十进制 255 表示ASCII 为255的字符 \\n 不用解释了吧 ...

问个问题, printf("%d",strlen("\\t\\"\\065\\xff\\n"));输出结果是
\\065——用八进制表示的ASCII码值53,是字符'5';\\xff——用十六进制表示的ASCII码值255,是扩展ASCII码的最后一个符号,标准平台下无输出;\\n——表示一个回车换行符,ASCII码值10。以上每个都只有一个字节,所以共5个字节。

下列语句的输出结果是 cout<<strlen("\\t\\"\\065\\xff\\n");
这个输出的结果是5,分别是\\t表示跳格,\\"表示一个",\\065是\\后面加一个8进制数,表示一个字符,\\xff也是一个\\后面加一个16进制数,也是表示一个字符,\\n表示换行,也是一个字符

int i; i=strlen("\\t\\"\\065\\xff\\n"); printf("%d",i); 求解释,!打印的...
\\t \\" \\065 \\xff \\n 以上分别代表一个字符,所以共有5个字符,即字符串的长度是5

strlen的问题
printf("%d\\n",strlen("\\t\\"065\\xff\\n"))输出的是7:\\t \\"0 6 5 \\xff \\n 一共七个字符 printf("%d\\n",strlen("ATS\\n012\\1\\\\"))输出的是9:A T S \\n 0 1 2 \\1 \\\\ 一共九个字符

计算字符串长度的问题!!!
printf("%d\\n",strlen("\\t\\"\\065\\xff\\n"));(A) 5(B) 14(C) 8(D) 输出项不合法,无正常输出 正确答案是(A):字符串中包含的5个字符是:'\\t'(跳格符)、'\\"'(双引号)、'\\065'(ASCII值为八进制065,也即十进制为51的字符)、'\\xff'(ASCII值为十六进制ff,也即十进制为...

语句prinff(”%d\\n”,strlen(”\\t\\”\\、、n\\ \\065\\08AB”));的输出结 ...
【答案】:A 字符串”\t\¨\\\nV、065\08AB”中共有13个字符,而strlen()函数从字符串第一个字符开始扫描,直到碰到第一个结束符’\0’为止,然后返回计数器值(长度不包含”、O”)。故输出结果为6。答案为A选项。

C语言中strlen函数是怎么计数的?
字符4:\\xff (这个我不知道怎么解释,请其它老师帮助解释)字符5:\\n 4. printf("%d \\n",strlen("stop\\0\\n\\""));字符1、2、3、4:stop 因为strlen()函数遇到\\0 就结束了,后面的字符就不去判断了。C语言中的字符串 是用\\0作为 结束符。希望我的解答 对你有所帮助,很高兴和你...

输出的结果是什么?
答案是 6,原因在于 "\\t\\"\\065\\xff\\n\\\\" 里有 6 个逃逸字元。每一个逃逸字元都是一个字符,所以该字符串里有 6 个字符。strlen()计算并返回它接收到的字符串的长度(即字符串里的字符个数),所以 strlen( "\\t\\"\\065\\xff\\n\\\\" )的返回值是 6。6 交到 printf()的手里以...

相似回答