请问为什么输出会有乱码,但是在线编译就没有
来源:3-5 编程练习
Mr__ChAi
2018-02-11 21:41:12
#include <iostream>
using namespace std;
int main()
{
//定义一维字符数组
char mychar[13]="abcdefg12345";
char ch1[7]; int c1=0;
char ch2[5]; int c2 = 0;
//for循环分割mych数组,放到对应的数组中去
for (int i = 0;i<12; i++)
{
if (mychar[i] >= 'a'&&mychar[i] <='z')
{
ch1[c1] = mychar[i];
c1++;
}
else if (mychar[i]>='0'&&mychar[i]<='9')
{
ch2[c2] = mychar[i];
c2++;
}
}
//输出新数组
cout << ch1 << endl;
cout << ch2 << endl;
system("pause");
return 0;
}
1回答
这个是跟编译器的编码有关系,因为在VC++中直接输出数组会导致产生这样的问题,在输出数组中元素的时候,通过循环遍历的方法进行输出就可以啦。可参考如下代码进行输出:
//输出新数组 for(i = 0;i<7;i++){ cout<<ch1[i]; } cout<<endl; for(i = 0;i<6;i++){ cout<<ch2[i]; } cout<<endl;
相似问题
回答 3
回答 1