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是一个字符,结束符

如果解决您的问题请采纳,祝学习愉快!

0

0 学习 · 593 问题

查看课程