(五十)其他类型的字符串字面值(为什么叫字面值)

之前在声明字符串的时候,C-风格是char 变量名[长度+1]={字符串}; 而string类风格是string 变量名={字符串}; 

除此之外,还有其他类型,

①如wchar_t;

声明方法(字符串带L前缀):如wchar_t=L"abc";

 

②C++11后新增的char16_t和char32_t;

声明方法(16的前面带小写u,32的前面带大写U)。如:

char16_t=u"aabb";

char32_t=U"aaabbb";

 

③原始字符串,在原始字符串里面,输入的字符都表示自己,例如\n在普通字符串里是换行,在原始字符串里显示\n。方法是前面加R,字符串的前后使用引号括号和括号引号。如:

string abc= R"(我很帅我很帅。\n)";

cout << abc;

 

输出:

我很帅我很帅。\n

 

注意,原始字符串可以通过前缀和其他字符串结合,来使用。

 

——但我实际不行啊?例如char16_t abc = Ru "(我很帅我很帅。)"最后失败了

 

假如要在让原始字符串里面显示"(和)",方法是,把字符串前后原本的"(和)"改成"+*(和)+*"。例如;

string abc = R"+*(我很帅"{我很帅)"。)+*";cout << abc;

 

输出:

我很帅"{我很帅)"。

你可能感兴趣的:((五十)其他类型的字符串字面值(为什么叫字面值))