codevs 1131 统计单词数

Posted hxh88

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codevs 1131 统计单词数相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<string>
using namespace std;

int main() 
{
    string s, s0;
    getline(cin, s0);//short
    getline(cin, s);
    for (int i = 0; i < s.length(); i++)
        s[i] = tolower(s[i]);
    for (int i = 0; i < s0.length(); i++)
        s0[i] = tolower(s0[i]);
    int k1 = s.length();
    int k2 = s0.length();
    s = " " + s + " ";
    s0 = " " + s0 + " ";
    int pos = s.find(s0);
    int cnt = 0;
    int k =pos;
    while (k>0)
    {
        cnt++;
        k= s.find(s0, ++k);
    }
    if (!cnt)
        cout << -1 << endl;
    else
        cout << cnt << " " << pos<< endl;
}

题目解释:

匹配字符串位置与统计个数,就是要注意空格的处理

一个简单的字符串处理功能,但是自己基础不牢。很多地方做得迷糊了。

比如字符间间隔符号是空格,没想到可以在字符串首尾添加空格来处理。

还有就是while(k)的真假判断,只有k为0为假的,其他的,例如1或-1都会是为真的。

我判断到int k=s.find(s,++k).其实返回的是一个无穷大的数,int没法存,就是变成了-1.

另外注意的点:

getline(cin,str);

注意这个函数可以读取到回车结束,可以把空格也一起输入到字符串函数中。

以上是关于codevs 1131 统计单词数的主要内容,如果未能解决你的问题,请参考以下文章

Codevs_1040_[NOIP2001]_统计单词个数_(划分型动态规划)

统计单词个数(codevs 1040)

统计单词数

统计单词数

作业-- 统计文本文件中的字符数单词数行数

统计行数字符数与单词数