zoukankan      html  css  js  c++  java
  • 对string型变量的频率统计(文章单词检索)

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    map<string,ll> mp;
    set<string> ss;


    void cnt(const string s,string sp)
    {
    for(ll i=0; i<s.length(); i++)
    {
    if(s[i]==sp[0])
    {
    int judge=1;
    for(ll j=0; j<sp.length(); j++)
    {
    if(s[i+j]!=sp[j])
    {
    judge=0;
    break;
    }
    }
    if(judge)
    {
    mp[sp]++;
    }
    }
    }
    }
    int main()
    {
    ll n;
    string s,sp;
    ifstream fin;
    char c;
    fin.open("wenzhang.txt",ios::in);
    if(!fin)
    {
    cout<<"cannot open input file"<<endl;
    exit(1);
    }
    while(fin>>c)
    {
    if(isalpha(c))
    {
    c=tolower(c);
    }
    s+=c;
    }
    cout<<"原文章为:"<<s<<endl;
    cout<<"输入你想查找的字符串的个数:"<<endl;
    cin>>n;
    cout<<"输入这些字符串:"<<endl;
    for(ll i=1; i<=n; i++)
    {
    cout<<"第"<<i<<"个字符串:"<<endl;
    cin>>sp;
    ss.insert(sp);
    }
    for(set<string>::iterator is=ss.begin(); is!=ss.end(); is++)
    {
    cnt(s,*is);
    }
    ofstream fout;
    fout.open("appeartimes.txt",ios::out);
    if(!fout)
    {
    cout<<"cannot open output file"<<endl;
    exit(1);
    }
    for(set<string>::iterator is=ss.begin();is!=ss.end();is++)
    {
    cout<<*is<<"出现的次数为:"<<mp[*is]<<endl;
    fout<<*is<<"出现的次数为:"<<mp[*is]<<endl;
    }
    return 0;
    }

    这个程序是用文件输入,只需要在工程文件中建立一个名为wenzhang.txt的文本文档并把要检索的文章粘贴进去即可。

    最开始的时候我用fin>>s打算把整篇文章输入到一个string中发现遇到空格就停止输入了,因此才改用while(cin>>c)的形式输入到string中,当然用scanf("%c",&c)!=EOF也可以输入

  • 相关阅读:
    基础DP背包
    哲学思絮01
    Vue使用ElementUI
    Vue-Mock数据
    Vue生命周期
    Vue实战之CURD
    读《间客》有感
    ASP.Net Core网站发布
    Cycling之 标签化
    Vue环境搭建
  • 原文地址:https://www.cnblogs.com/Numblzw/p/10022697.html
Copyright © 2011-2022 走看看