统计第一行句子中单词在下面文本中的出现次数。
用两个string类型的数组存储所出现的单词,每个单词单独看成一个字符串,然后将句子单词所在的数组做一遍筛选,去除重复的单词项,最后用两重循环来统计单词出现次数。由于句子输入是以回车为结束标志,所以采用cin进行输入,用do-while循环来判断是否结束,文本输入以Ctrl+Z为结束标志,所以用while(cin>>str)循环来进行输入。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
string S_danci[100];
string T_danci[500];
int num1,num2;
int COUNT;
int i=0,j=0;
//输入第一行句子
do{
cin>>str;
S_danci[i]=str;
i++;
}while(cin.get()!='\n');
num1=i;
//输入文本
while(cin>>str)
{
T_danci[j]=str;
j++;
}
num2=j;
//删除重复项
for(i=0;i<num1;i++)
{
for(j=i+1;j<num1;j++)
{
if(S_danci[i]==S_danci[j])
{
for(intk=j+1;k<num1;k++)
{
S_danci[k-1]=S_danci[k];
num1--;
}
}
}
}
//统计数量
for(i=0;i<num1;i++)
{
COUNT=0;
for(j=0;j<num2;j++)
{
if(S_danci[i]==T_danci[j])
COUNT++;
}
cout<<S_danci[i]<<":"<<COUNT<<endl;
}
return 0;
}