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

时间:2014-04-27 03:07:16

标签: c++ string variables char

我非常确定char类型用于存储单个ASCII字符,除非添加任何前缀。因此,请注意我使用std::string<iostream>附带的<string>类型 我需要的时候。

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

2 个答案:

答案 0 :(得分:11)

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

所以'\n'是一个表示单个字符的字符常量,换行符。

另一方面(如Paul Griffiths' answer指出),"\n"(带双引号而不是单引号)是字符串文字,表示字符串价值。该字符串由两个字符组成,一个'\n'换行符和一个'\0'空字符,用于标记字符串的结尾。

答案 1 :(得分:6)

字符串"\n"是两个字符'\n''\0' - 因为C样式字符串由空字符终止,在这种情况下是隐式的 - 所以不,你不能适应它到一个char。显然,您可以将'\n'存储在一个char中,但它仍然是一个char,而不是字符串。