- 字符串"ab\n\\012/\\\""的长度为___。如题,越详
- 如题,越详细越好
- 长度是10
\n是回车,算一个字符;
\\表示\
\"表示"
为什么是这样?
因为\这个操作符是转义符,他表示将后面的特殊字符作为普通字符处理。比如"号是个特殊字符,他用于界定一个字符串。如申明字符串char* a="ab";=号后面是"abcd",但实际上a中只有abcd四个字符,因为"号在这里只起界定作用。问题来了,如果我希望a 中包括一个分号怎么办或者是包括二个分号怎么办?用a="abcd""或a=""abcd"";这样是不行的,因为编译器分不清你的字符串的结束位置,所以,C语言中用\操作符来解决这个问题。在"前加个\表示这个"号只是个普通字符而不是界定符。上述包括一个分号的表示因此就是这样:a="abcd\"",包括二个分号的就是这样:a="\"abcd\""
请注意:
1、\本身也是个特殊字符,要想在字符串中包括\也要对其使用转义,如是要这么表示:\\
2、有些转义是固定的,如:\n表示回车;\0表示字符串结束(也占一个字符);\t表示tab
你的题中:"ab\n\\012/\\\""使用转义的地方依次如下:
34:\n(34:表示在你的题中第3第4个位置)
56:\\(请注意0前是没有转义符的,因为\只对其前面的一个字符转义)
11 12:\\
13 14:\"
那么你的字符串实际上是:
ab
\0123/"
包括b和\之间的回车共10个字符。
哈哈,希望你看明白了,有问题给我发消息。