字符串为int,再次为字符串C ++

时间:2015-12-20 10:40:17

标签: c++ string for-loop int getline

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

        <FrameLayout
            android:id="@+id/layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

例如,如果我进入打击: abcd123 结果是打击: bcde234

但是当我运行它时,输入后会出错:(

1 个答案:

答案 0 :(得分:0)

错误的原因是字符串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]++;