rjps.net
当前位置:首页 >> ChAr C[]="\t\v\129\\\xDF\0will\'\n";... >>

ChAr C[]="\t\v\129\\\xDF\0will\'\n";...

朋友,请看:\t \v \12 9 \\ \xdf (\0这是结束符,它和其后的都不算了),6个.其中\12是八进制表示的回车,9是单独的字符,因为八进制里没有9.你可能疏忽了,把\129算一个字符了.

你的题目没写完,我觉得应该是输出字符数组c的长度吧?char c[]="\t\v\\\0will\n" printf("%d",strlen(c)); char c[]={'\t','\v','\\','\0','w','i','l','l','\n','\0'}; 所以输出应该是3 strlen这个函数是遇到'\0'就结束.

你的题复目没写完,我觉得应该是输制出字符数组2113c的长度吧?char c[]="\t\v\\\0will\n" printf("%d",strlen(c)); char c[]={'\t','\v','\\','\0','w','i','l','l','\n','\0'}; 所以输出5261应该是41023 strlen这个函数是遇到1653'\0'就结束.

\t \v \\ \0 到这里就意味着字符串结束 所以输出为3

"\t\n\\\0will\n"包含下列字符:\t \n \\ \0 ----------------->这个是字符串结束符,前面有三个字符,因此strlen(c)的值是3.w i l l \n

c 中的一些转义字符,你应该了解的啊:\n \t \v \b \r \f \' \" \\分别是换行、水平制表符、垂直制表符、退格符、回车符、换页、单引号、双引号、\(貌似还有其他的、)所以c[] 中前三个分别是 \t \v \\c 中字符的另一个表达方法 \ooo 或是 \xhh (o是八

\t\v\129\\\xdf\0will\'\n 第一个\t,表示水平制表符 第二个\v,表示垂直制表符 第三个\129,表示八进制数129 第四个\\,表示\ 第五个\xdf,表示十六进制数df 第六个\0,表示字符串结尾 遇到字符串结尾符\0,字符串结束

根据楼主提供的答案是3,做一点分析.char c[]字符数组是不是打错了,应该为char c[]="\t\v\\\0will\n" \t 表示一个字符;\v 表示一个字符;\\ 表示一个字符;\0 表示字符终止.

\t、\v、\\都是转义字符,各占一个字节,字符串遇到\0结束,所以字符串长度为3

char *sp="\t\v\\\0will\n"; printf("%d",strlen(sp)); 结果为3 \t、\v、\\这有三个字符 strlen函数以'\0'作为结束符,且长度不加'\0'字符

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.rjps.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com