字符串"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个字符。 哈哈,希望你看明白了,有问题给我发消息。