3-5编程练习
#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;
}
老师为啥这个运行会不对 呢
正在回答
你好,代码有两个问题。
1 循环中对ch2的赋值不对,i从0开始增加,前面的字母都赋值给ch1,后面的都赋值给ch2,但是ch2的小标也是从0开始的,此时直接使用i作为ch2第一个字符的小标是不合理的
2 输出不对,你的输出方式只能输出字符串数组中的第i个元素,而不是整个数组,且字符串应该有'\0'作为结束符,这样输出时才不会乱码,加上结束符,那么ch1和ch2的字符串长度就应该定义为7和6。主函数代码修正如下

如果解决了你的问题,请采纳,祝学习愉快~
- 参与学习 529 人
- 提交作业 110 份
- 解答问题 593 个
无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!
了解课程
这样运行结果就不对
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星