首页 > 其他 > 详细

codevs 1131 统计单词数

时间:2018-07-16 13:20:27      阅读:140      评论:0      收藏:0      [点我收藏+]
#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 统计单词数

原文:https://www.cnblogs.com/hxh88/p/9317144.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!