有人可以用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
答案 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'
。