zoukankan      html  css  js  c++  java
  • 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);

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

  • 相关阅读:
    奇异值分解
    特征值和特征向量
    矩阵
    矢量化
    符号数组
    通用函数
    数据平滑
    多项式拟合
    协方差/相关矩阵/相关系数
    json
  • 原文地址:https://www.cnblogs.com/hxh88/p/9317144.html
Copyright © 2011-2022 走看看