3-5编程练习

来源:3-5 编程练习

qq_华仔_5

2018-03-06 14:50:44

#include<iostream>

using namespace std;

int main()

{

cout<<"请输入一个12字节数据:";

char mych[13]=" ";

cin>>mych;

char ch1[7]=" ",ch2[5]=" ";


for(int i=0;mych[i]!='\0';i++)

{

if(mych[i]>='a'&&mych[i]<='z')

{

ch1[i]=mych[i];


}else if(mych[i]>='0'&& mych[i]<='9')

{

ch2[i]=mych[i];


}

}

cout<<"字符数组ch1的值为:"<<ch1[i]<<endl;

cout<<"字符数组ch2的值为:"<<ch2[i ]<<endl;


return 0;

}

老师为啥这个运行会不对 呢

写回答

3回答

imooc_澈

2018-03-06

你好,代码有两个问题。

1 循环中对ch2的赋值不对,i从0开始增加,前面的字母都赋值给ch1,后面的都赋值给ch2,但是ch2的小标也是从0开始的,此时直接使用i作为ch2第一个字符的小标是不合理的

2 输出不对,你的输出方式只能输出字符串数组中的第i个元素,而不是整个数组,且字符串应该有'\0'作为结束符,这样输出时才不会乱码,加上结束符,那么ch1和ch2的字符串长度就应该定义为7和6。主函数代码修正如下

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

如果解决了你的问题,请采纳,祝学习愉快~


1
hq_华仔_5
h 老师,在请教一下,就是我在定位ch1和ch2数组为啥要定义了它的长度8和6,运行才会没有错,不是可以不用写长度吗,会自动截取长度
h018-03-06
共1条回复

qq_华仔_5

提问者

2018-03-06

图片加载失败这样运行结果就不对

0

qq_华仔_5

提问者

2018-03-06

老师,在请教一下,就是我在定位ch1和ch2数组为啥要定义了它的长度7和5,运行才会没有错,不是可以不用写长度吗,会自动截取长度都嘛?

0
hq_华仔_5
h 明白了,谢谢老师
h018-03-07
共2条回复

0 学习 · 593 问题

查看课程