"\n"被认为是一个或两个字符,它可以存储在char中吗?

Mag*_*bon 8 c++ string variables char

我非常确定该char类型是用于存储单个ASCII字符,除非添加任何前缀.因此,考虑到这一点,我使用std::string随附的类型<iostream><string> 在需要时使用.

如果我"\n"在a中存储std::string并打印它,它将被视为单个字符.这是否意味着我可以将字符串放入a中char,即使它看起来包含两个字符?

Kei*_*son 14

换行符是单个(通常是8位)字符.它由两个字符的序列在程序源(字符文字或字符串文字)中表示\n.

'\n'表示单个字符(换行符)的字符常量也是如此.

另一方面(正如Paul Griffiths的回答所指出的那样)"\n"(使用双引号而不是单引号)是一个表示字符串值的字符串文字.该字符串由两个字符组成,一个换行符和一个标记字符串结尾的空字符.'\n''\0'


Cro*_*man 7

字符串"\n"是两个字符,'\n'并且'\0'- 因为C样式的字符串由空字符终止,在这种情况下是隐式的 - 所以不,你不能将它装入单个字符串中char.可以很明显的一个存储'\n'在一个单一的char,但它仍将是一个单一的char,而不是一个字符串.