wuchangyuan666 2022-05-03 17:43 采纳率: 100%
浏览 306
已结题

字符型数组的输出结果后面多一个方框的原因

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图

我的代码
c++

#include
#include
using namespace std;
int main()
{
char a[80],b[80];
int n;
cin.getline(a,80,'\n');
n=strlen(a);
for(int i=0; i<=n; i++)
{
if((a[i]>='A')&&(a[i]<'Y'))
b[i]=a[i]+2;
if((a[i]>='Y')&&(a[i]<='Z'))
b[i]=a[i]+2-26;
if((a[i]>='a')&&(a[i]<'y'))
b[i]=a[i]+2;
else if((a[i]>='y')&&(a[i]<'z'))
a[i]=a[i]+2-26;
}
cout<<b<<endl;
cout<<a;
return 0;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

img

  • 写回答

1条回答 默认 最新

  • 林未明 2022-05-05 15:41
    关注

    把char a[80],b[80];改成char a[80],b[81];
    在它后面加上memset(b,'\0',sizeof(b));

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月25日
  • 已采纳回答 5月17日
  • 请提交代码 5月3日
  • 修改了问题 5月3日
  • 展开全部