3-5编程,如何在不知道数组长度的情况下让结果输出来没有乱码
来源:3-5 编程练习
qq_林二爷_0
2018-10-10 19:30:41
#include <iostream>
using namespace std;
int main()
{
char mych[13]={"abcdefg12345"};
char ch1[10],ch2[10];
int m=0;
int n=0;
for(int i=0;i<13;i++){
if(mych[i]>='a'&&mych[i]<='z'){
ch1[m]=mych[i];
m++;
}else if(mych[i]>='0'&&mych[i]<='9'){
ch2[n]=mych[i];
n++;
}
}
for(int j=0;j<10;j++){
cout<<ch1[j]<<'-';
}
cout<<endl;
for(int k=0;k<10;k++){
cout<<ch2[k]<<'-';
}
cout<<endl;
// cout<<"字符数字ch1的值为:"<<ch1<<endl;
// cout<<"字符数字ch2的值为:"<<ch2<<endl;
return 0;
}1回答
guly
2018-10-11
你好建议参考如下:
一:可以直接使用数组中元素的个数,
#include <iostream>
using namespace std;
int main()
{
char mych[]={"abcdefg12345"};
char ch1[10],ch2[10];
int m=0;
int n=0;
int len;
for(int i=0;i<12;i++){
if(mych[i]>='a'&&mych[i]<='z'){
ch1[m]=mych[i];
m++;
}else if(mych[i]>='0'&&mych[i]<='9'){
ch2[n]=mych[i];
n++;
}
}
for(int j=0;j< m;j++){
cout<<ch1[j]<<'-';
}
cout<<endl;
for(int k=0;k<n;k++){
cout<<ch2[k]<<'-';
}
//cout<<"字符数字ch1的值为:"<<ch1<<endl;
//cout<<"字符数字ch2的值为:"<<ch2<<endl;
return 0;
}二:可以对字符串设置结束符
#include <iostream>
using namespace std;
int i;
int main()
{
char mych[]="abcdefg12345";
char ch1[12];
char ch2[12];
int a=0,b=0;
//分别求基础和进阶课的平均学习时间
for(int i=0;i<12;i++){
if(mych[i]>='a'&&mych[i]<='z'){
ch1[a]=mych[i];
a++;
}else{
ch2[b]=mych[i];
b++;
}
}
ch1[a]='\0';
ch2[b]='\0';
cout<<"字符数组ch1的值为:"<<ch1<<endl;
cout<<"字符数组ch1的值为:"<<ch2<<endl;
return 0;
}char str1[] = "\0"; // 双引号表示字符串,str1是一个字符数组,它包含两个字符,并且都是结束符\0
char str2 = '\0' // 单引号表示单一字符,str2是一个字符,结束符
如果解决您的问题请采纳,祝学习愉快!
相似问题
回答 3