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

Posted

技术标签:

【中文标题】字符串到 int 再到字符串 C++【英文标题】:String to int and again to string C++ 【发布时间】:2015-12-20 10:40:16 【问题描述】:

我想编程从用户那里获取一个字符串并将其转换为一些数字(字符),当数字增加 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;

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

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

【问题讨论】:

不需要对你的标题做任何事情。 您需要将'1' 更改为1。它应该是一个整数值来增加字符值,而不是 char 值。 亲爱的用户007,我试过你说的,但它也没有工作 【参考方案1】:

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

【讨论】:

@danirzv :正确解释您的尝试。具体的错误信息是什么。除非您这样做,否则我们无法帮助您。 "代码 = 文本;"和“代码[i] = 文本[i] + 1;”帮助了我,非常感谢。 @DanialRazavi:更重要的是你明白你做错了什么,并从答案中学到了一些东西。 我 100% 同意你的观点,感谢你教给我的东西 :)

以上是关于字符串到 int 再到字符串 C++的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中将 int 附加到字符串? [复制]

C++ Stringstream int 到字符串但返回 null

c++ string int

如何使用 c++ 将字符串散列为 int?

将字符串值从 C# 返回到 c++

c++ int转化为string 类型