分享两种方式,第一种方式字符数组
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
char s1[6],s2[80];
int i,j,n1,n2;
while(cin.getline(s1,6)){ //循环框架
if(strcmp(s1,"#")==0) //假如输入#完结
return 0;
cin.getline(s2,80);
n1=strlen(s1);
n2=strlen(s2);
for(i=0;i<n1;i++){ //第一个串外循环
cout<<s1[i]<<" ";
int sum=0;
for(j=0;j<n2;j++){ //第二个串内循环
if(s2[j]==s1[i]){//判断第一个串里每一个字符在第二个串里出现的次数,并累加
sum++;
}
}
cout<<sum<<endl;
sum=0;
}
}
return 0;
}
第二种方式字符串方式
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
string s1,s2;
int i,j,n;
while(getline(cin,s1)){ //循环框架
if(s1=="#") //假如输入#完结
return 0;
getline(cin,s2);
n=s1.length();
for(i=0;i<n;i++){ //第一个串外循环
cout<<s1[i]<<" ";
int sum=0;
for(;s2.find(s1[i])!=-1;){ //第二个串内循环 ,在第二个串中查不到第一个串中的字符就截止
sum++; //判断第一个串里每一个字符在第二个串里出现的次数,并累加
s2.erase(s2.find(s1[i]),1);//把查到的位置的字符删掉,因为find函数每次只返回第一次出现的位置
}
cout<<sum<<endl;
sum=0;
}
}
return 0;
}