将整数加到char

时间:2019-01-08 21:16:02

标签: c++ string ascii

有人可以用ascii值解释这是怎么回事吗?首先将char添加到int可以正常工作

但是第二个不起作用 你能解释一下它是如何工作的吗?

#include<iostream>
using namespace std;
int main(){ 
    string str="1234";

    str[0]=str[0]+1;    //working fine 
    cout<<str<<endl;
    str[1]=str[1]+'c';   //printing some new character at 1 position
    cout<<str<<endl;
}

我是n

1 个答案:

答案 0 :(得分:1)

str[1] = str[1] + 'c'执行'2' + 'c',这与2 + 'c'不同。

在ascii中,'2'50,而'c'99

其总和为149,不在ascii(0-127)范围内,因此显示的字符取决于您使用的扩展ASCII码(可能为ò)。

如果您想拥有2 + 'c',则必须根据自己的情况做str[1] = str[1] + 'c' - '0'