• 统计单词数 OpenJ_Bailian


     一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。
    现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同 (参见样例 1) ,如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例 2) 。

    说实话,字符串是我的弱坑,这次题意还十分有歧义,他说的第一次位置,是每个字符数出来的位置,而不是每个单词数出来的位置。真心坑。

    #include<iostream>
    #include<string>
    #include<cstdio>
    using namespace std;
    void fun(string &num)
    {
        int len = num.length(), kk = 'a' - 'A';
        for (int i = 0; i < len;++i)
        if (!(num[i]<='Z'&&num[i]>='A'||num[i]>='a'&&num[i]<='z'))continue;
        else if (num[i] <= 'Z')num[i] += kk;
    }
    int main()
    {
        string res,cns;
        int len;
        (cin >> res).get();
        fun(res);
        getline(cin, cns);
        fun(cns);        len = cns.length();
        int first, count=0, k=0;
        for (int i = 0; i < len;)
        {
            string word = "";
            while (i < len&&cns[i] != ' '){ word += cns[i]; ++i; }
            if (i >= len)break;
            if (res == word)
            {
                if (count==0){ first = i-res.length();}
                count++;
            }
            ++k;
            while (i<len&&cns[i] == ' ')++i;
        }
        if (!count)printf("-1
    ");
        else printf("%d %d
    ", count, first);
    }
  • 相关阅读:
    阻止JavaScript事件冒泡传递<转>
    小温谈数据库优化数据库设计篇
    名言集合
    SQL Server中获得EXEC的值<转>
    WIN2008 64位系统配置PHP的方法
    陪伴我作为程序员的9句名言<转>
    C# 的快捷键汇总(一)
    使用VB.NET开发复合控件
    C#写SQL SERVER2008存储过程
    c#图像处理入门
  • 原文地址:https://www.cnblogs.com/ALINGMAOMAO/p/10061570.html
Copyright © 2020-2023  润新知