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);

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

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

时间: 2024-10-13 06:20:07

codevs 1131 统计单词数的相关文章

【字符串处理】codevs 1131 统计单词数

131 统计单词数 2011年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数.现 在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置.注意:匹配单词时,不区分大小写,但要求 完全匹配,即给定单词必须与文章中的某一独立单词在不区分大

杭电2072 统计单词数

http://acm.hdu.edu.cn/showproblem.php?pid=2072 用set容器来统计单词数,可以排除相同的单词. #include<iostream>#include<set>#include<string>using namespace std; int main(){ string String,str; set<string> s; int i = 0; bool flag; while(getline(cin,str) &

统计单词数

1.首先新建两个文件夹: 往文件夹添加内容: 2.启动hadoop-查看是否启动成功. 3.先对nameNode进行初始化. 4.查看hadoop下面有哪些文件. 5.在hadoop目录下创建input文件. 6.拷贝文件到hadoop目录下. 7.执行统计的单词数. 8.对结果进行查看. 9.也可以在浏览器进行查看. 输入:http://localhost:50070 10.关闭hadoop.

noip2011普及组——统计单词数

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

05:统计单词数【NOIP2011复赛普及组第二题】

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

AC日记——统计单词数 openjudge 1.12 5

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

蓝桥杯java 算法提高 统计单词数

问题描述 统计输入英文文章段落中不同单词(单词有大小写之分,但统计时忽略大小写)各自出现的次数. 输入段落中所含单词的总数不超过100,最长单词的长度不超过20个字母. 输入格式 一个包含若干句子的段落, 每个句子由若干英文单词组成. 除空格,逗号和句号外, 这些输入的句子中不含其他非字母字符, 并且, 逗号和句号紧跟在它前面的英文单词后面, 中间没有空格. 段落最后一个字符是回车符,表示输入结束. 输出格式 若段落中共有M个不同的英文单词,则按照其在段落中出现的先后顺序输出M行,各行的格式为:

NOIP2011统计单词数

分析:常规题,一次扫描即可,但要注意大小写和没出先要输出-1.判断是否是某个单词的一部分可以通过判断后一个词是不是空格或\0来解决.上题. 1 #include <stdio.h> 2 #include<string.h> 3 #define MAX 1000 4 int main() 5 { 6 char str[MAX]; 7 char word[MAX]; 8 int i,lenth,j=0; 9 int t,L; 10 int num=0,pos; 11 gets(word

noip2011普及组T2 统计单词数(stat) KMP算法

才学了KMP,拿这题来练练手……(不过似乎有点小题大做了…… 这就是一题水水的KMP模板,匹配若干次,每一次从上次匹配后的位置开始,直到匹配失败. 虽然用的算法“高级”一点,但是居然比暴力慢了40MS啊啊啊…… Code: 1 #include<iostream> 2 using namespace std; 3 const int P=15; 4 const int S=1000005; 5 char p[P],s[S]; 6 int next[P],pl,sl; 7 void getnex