字符串到 int 再到字符串 C++

String to int and again to string C++

我想编程从用户那里获取一个字符串并将其转换为一些数字(字符),当数字增加 1 个单位时将它们放入另一个字符串并显示它。

    string text, code;

    cout << "Enter Text: ";
    getline(cin, text);

    for (int i = 0; i < 8 ; i++)
        code[i] = text[i] + '1';
    cout<<code<<endl;

例如,如果我输入为 blow: abcd123 结果如打击: bcde234

但是当我 运行 这个,在我输入之后它得到一个错误:(

错误的原因是字符串code被单元化了,在索引i处访问它是UB。要解决此问题,请在读取输入并将其放入字符串 text

后添加以下行
code = text; // Giving it the exact value of text is redundant. The main point is to initialise it to appropriate size.

除此之外,而不是

code[i] = text[i] + '1';

应该是

code[i] = text[i] + 1;

你也可以修改代码如下,避免code变量,更简洁:

text[i]++;