有一个未找到答案的问题,为什么最后输出时候cout<<b无法输出,必须要转换成字符串数组形式才能输出?
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a,b;
int i;
getline(cin,a);
for(i=0;i<a.size()-1;i++)
b[i]=a[i]+a[i+1];
b[i]=a[i]+a[0];
cout<<b.c_str();
return 0;
}
你的代码里b字符串都没有分配内存,通过下标对其赋值,其行为是UB(Undefined Behaviour)
b[i]=a[i]+a[i+1];这个是两个字符的ascii编码相加,这是要做什么?
字符的ascii编码最大是255(英文字符范围是32到127),两个字符的ascii编码相加超过255或者127就会显示不正确
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
要确定是没输出还是输出的东西你看不到,可以前后加个引号看下到底有没有打印东西
你这问题问的不完整,起码应该把错误信息贴出来。
先看报错信息,根据报错信息去解决问题