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