C++输出字符数组,却显示烫等乱码~~求助各位大神

2025-03-04 07:42:52
推荐回答(5个)
回答1:

字符串应该以“\0”结尾,如果没有他会一直显示下去,当超过字符串的长度时,显示出来的很多都是乱码了,你应该在字符串结尾设置个“\0”

回答2:

烫 是window控制台上c编程最容易出现的乱码,其实很简单,你访问了垃圾内存,字符串使用前,请记得:memset(str, 0, sizeof(str));一下,这样垃圾内存你就访问不到了

回答3:

#include
using namespace std;
int main()
{
char line[200];
int i=0;
cout<<"请输入字符:"< cin.getline(line,199,'#');
while(line[i]!='\0')//字符串结束符为'\0'所以改为line[i]!='\0'
{
if((line[i]>='A'&&line[i]<='V')||(line[i]>='a'&&line[i]<='v'))
{
line[i]=char(line[i]+4);
}
else if((line[i]>='W'&&line[i]<='Z')||(line[i]>='w'&&line[i]<='z'))
{
line[i]=char(line[i]-22);
}
cout< i++;
}
return 0;
}

回答4:

char line[200] = {}; //初始化

回答5:

那个是我遇到过,当时是因为定义的数组没有赋值,看看你的是不是也是那个情况...