精华内容
下载资源
问答
  • 统计单词数

    2020-07-30 21:37:31
    统计单词数 洛谷p1308 题解 题目要求查找的单词不是输入的单词 而是_目标单词_(“_”表示空格) 所以只需要将目标单词和样本文章前后都加上空格就行了。 处理之后,访问样本文章,查找目标单词并记录。 每一次查找...

    统计单词数 洛谷p1308

    题解

    题目要求查找的单词不是输入的单词

    而是_目标单词_(“_”表示空格)
    所以只需要将目标单词和样本文章前后都加上空格就行了。

    处理之后,访问样本文章,查找目标单词并记录。

    每一次查找目标单词后,只查找后面的文章片段

    当查找不到时停止查找。

    #include <iostream>
    #include <cstdio>
    #include <string>
    using namespace std;
    int n=0,a[2],x;
    void zhuanxiaoxie(string &x)
    {
        for (int i=0; i<x.size(); i++)
        {
        	if (x[i]>='a') x[i]=x[i]-32;
    	}
    }
    int main()
    {
    	string mubiao,yangben,temp=" ";
    	
    	getline(cin,mubiao);
    	getline(cin,yangben);
    	
        temp+=mubiao;
        mubiao=temp+" ";
        temp+=yangben;
        yangben=temp+" ";//目标单词和样本文章预处理
        
    	zhuanxiaoxie(mubiao);
    	zhuanxiaoxie(yangben);//进行大小写处理 
    	
    	if (yangben.find(mubiao) != string::npos)//判断文章是否出现目标单词 
    	{
    		a[0]=yangben.find(mubiao);//记录第一次查找到的下标 
    		a[1]++;//出现次数+1 
    		for (int i = a[0]+1; i < yangben.size(); i = x+1)//i=x+1更新查找位置 
    		{
    			if (yangben.find(mubiao,i) != string::npos)//判断之后的文章片段能否查找 
    			{
    				x=yangben.find(mubiao,i);//记录此次查找下标 
    				a[1]++;//出现次数+1
    			}
    			else break;//查找不到终止操作 
    		}
    		cout<<a[1]<<" "<<a[0];//输出结果 
    	}
    	else
    	{
    		cout<<"-1";//无目标单词,输出结果
    	}
    	return 0;
    }
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,795
精华内容 2,318
关键字:

统计单词数