['0'语法在字符串push_back [duplicate]

问题描述 投票:0回答:3

我刚刚从根本上学习了c ++。我试图将int数组转换为字符串,并在网上找到此代码。

int arr[4] = { 1,2,3,4 };
std::string str;
for (int i : arr) {
    str.push_back(i + '0');
}
std::cout << str;
return 0;

[请有人为我解释'0'是什么意思?

c++ syntax character-encoding char
3个回答
2
投票

'0'是表示符号'0'的字符文字。根据C ++标准(2.3个字符集):

  1. ...在源和执行基本字符集中,每个字符的值上面的十进制数字列表中0后面的字符应大于1前一个的值。

因此,如果您有字符'0',则表达式'0'+ 1会产生字符'1'的值。表达式'0'+ 2产生字符'2'的值,依此类推。

例如,在ASCII编码系统中,从'0'到'9'的字符具有从48到57(包括两端)的连续值。在EBCDIC编码系统中,从'0'到'9'的字符具有从240到249(包括两端)的连续值。


1
投票

字面意思是数字0,这是一个用于表示数字或数字零的字符符号。 C ++使用撇号来表示单个字符文字。


1
投票

这是语言要求,用于编写C ++源代码的任何字符集必须依次显示数字0到9。因此,i + '0'会将i中保存的整数转换为表示该数字的字符值,只要它在0到9的范围内即可。1变为'1'的值,依此类推。

© www.soinside.com 2019 - 2024. All rights reserved.