我已经在下面发布了我正在处理的代码的相关部分。起初,我试图在字符串末尾添加一个整数。

但是,我发现的任何方法都无法正常工作(to_string,itua,casting)。每当我将整数简单地添加到字符串中时,我都会得到字符串加上末尾的奇数小符号,例如笑脸或小铲。但是,当我在'0'行中添加str += i时,它将起作用!

问题是,我不知道为什么。我希望有人愿意向我解释这里到底发生了什么,为什么会起作用?我只是不明白如何在不进行强制转换的情况下将整数添加到字符串中,为什么还要添加一个字符(我认为呢?)使其起作用。

感谢所有花时间阅读本文的人。

int main()
{
    string str = "Filler";
    int i = 2;
    str += i+'0';      //if I remove the +'0' it no longer works as intended.
    cout << str << endl;
    return 0;


}

最佳答案

i+'0'这是将字符'0'的ASCII值添加到i的值
i+'0'等于字符“ 2”的ASCII码
因此,您要将str连接到一个数字(在我的计算机上是50)(该数字不同于2,但这是2的ASCII码)
 (请注意,50基于我计算机的ASCII表,可能对您而言不一样-我不确定它是否对所有对象都是唯一的)
ASCII码为2的字符不是'2',则是您得到的那个奇数字符

09-10 04:17
查看更多