字符串到 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++的主要内容,如果未能解决你的问题,请参考以下文章