请问为什么输出会有乱码,但是在线编译就没有

来源: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;

}

http://img.mukewang.com/climg/5a8047d90001c2b509930519.jpg

写回答

1回答

Tender10

2018-02-12

这个是跟编译器的编码有关系,因为在VC++中直接输出数组会导致产生这样的问题,在输出数组中元素的时候,通过循环遍历的方法进行输出就可以啦。可参考如下代码进行输出:

//输出新数组
for(i = 0;i<7;i++){
    cout<<ch1[i];
}
cout<<endl;

for(i = 0;i<6;i++){
    cout<<ch2[i];
}
cout<<endl;


0
hr__ChAi
h 好哒谢谢我试试
h018-02-12
共1条回复

0 学习 · 593 问题

查看课程