VC++2008字符串逆向输出怎么把输出结果里【烫烫烫烫……】弄掉

#include<iostream>
using namespace std;
void main()
{
char a[]="12345",b[5];
int i;
for(i=0;i<5;i++)
b[i]=a[4-i];
cout<<a<<"逆向输出为"<<b<<endl;

}

结果逆向输出了是54321烫烫烫烫烫?2345

怎么修正

每个字符串末尾都必须有一个'\0'字符,输出字符串的时候是以这个为标准判断的,遇到'\0'就停止输出,否则会一直输出下去,你生成新的字符组时没有把末尾的'\0'复制到最后,所以输出时把数组后面未赋值的区域也打印出来了,VC里不小心输出了未输值的内存区域一般都是显示为“烫烫烫”这样。
声明时把 b[5]改成b[6],在
for(i=0;i<5;i++)
b[i]=a[4-i];
cout<<a<<"逆向输出为"<<b<<endl;
这里cout前插入一个
b[5]='\0';
就好了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-06
溢出……
相似回答