先看以下代码:
#include<iostream>
#include<string> using namespace std; int main()
{
string str1("[\t]");
cout << str1 << endl;
cout << "[\t]" << endl;
cout << "[ ]" << endl;//[]里边有7个空格
string str2("\t");
cout << str2.length() << endl;
string str3("\\t");
cout << str3 << endl;
cout << "\\t" << endl;
cout << str3.length() << endl;
return ;
}
结果如图:
可见:
(1)无论是string类型还是char*类型,其中的转义字符的输出都是该转义字符所表示的含义而不是转移字符的图形(仔细想想,若非如此,那转移字符就对不上“转义”二字了)。
(2)整个转移字符(如\t)占一个字节(而不是\占一个t占一个,因为它们本身就是一个整体,是一个字符)。
(3)如果我们就是想要打印出转义字符的“原貌”,方法是:在该转义字符前加一个\,正如大家在例子中看到的。