добавление целого числа к символу - PullRequest
0 голосов
/ 09 января 2019

может кто-нибудь объяснить, что здесь происходит, со значениями 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 голосов
/ 09 января 2019

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' в вашем случае.

...