题目要求:输入一行包括大写字母,小写字母及数字的字符串,该字符串以#号为结束标记,要求统计指定字符出现次数,能够实现循环操作
题解:通过ASCII值之间的关系,开辟一个数组,边输入边计数,查找时通过下标查找
#include <iostream>
using namespace std;
void count()
{
int a[200]={0};
char ch;
cout<<"请输入字符串:(以#号结束)";
while(cin>>ch&&ch!='#'){
a[ch-'0']++;
}
cout<<"请输入查找的字符:";
cin>>ch;
cout<<"字符出现次数为:";
cout<<a[ch-'0']<<endl<<endl;
}
void count_1()
{
int a[62]={0};
char ch;
cout<<"请输入字符串:(以#号结束)";
while(cin>>ch&&ch!='#'){
if(ch>='A'&&ch<='Z')a[ch-'A']++;
else if(ch>='a'&&ch<='z')a[ch-'a'+36]++;
else a[ch-'0'+26]++;
}
cout<<"请输入查找的字符:";
cin>>ch;
cout<<"字符出现次数为:";
if(ch>='A'&&ch<='Z') cout<<a[ch-'A']<<endl;
else if(ch>='a'&&ch<='z') cout<<a[ch-'a'+36]<<endl;
else cout<<a[ch-'0'+26]<<endl;
}
int main()
{
//count();
//count_1();
int a[62]={0};
char ch;
cout<<"请输入字符串:(以#号结束)-0p0-";
while(cin>>ch&&ch!='#'){
if(ch>='A'&&ch<='Z')a[ch-'A']++;
else if(ch>='a'&&ch<='z')a[ch-'a'+36]++;
else a[ch-'0'+26]++;
}
cout<<"请输入查找的字符:(输入#号退出)";
cin>>ch;
while(ch!='#'){
cout<<"字符出现次数为:";
if(ch>='A'&&ch<='Z') cout<<a[ch-'A']<<endl;
else if(ch>='a'&&ch<='z') cout<<a[ch-'a'+36]<<endl;
else cout<<a[ch-'0'+26]<<endl;
cout<<"请输入查找的字符:(输入#号退出)";
cin>>ch;
}
return 0;
}