zoukankan      html  css  js  c++  java
  • 统计单词数:string函数使用

    题目描述

    一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。

    现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章

    中的某一独立单词在不区分大小写的情况下完全相同(参见样例1 ),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2 )。

    输入输出格式

    输入格式:

    2行。

    1行为一个字符串,其中只含字母,表示给定单词;

    2行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

    输出格式:

    一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从0 开始);如果单词在文章中没有出现,则直接输出一个整数1。

    输入输出样例

    输入样例#1: 
    To
    to be or not to be is a question
    
    输出样例#1: 
    2 0
    
    
    输入样例#2: 
    to
    Did the Ottoman Empire lose its power at that time
    输出样例#2: 
    -1

    说明

    数据范围

    1≤单词长度10。

    1≤文章长度1,000,000。

    noip2011普及组第2题

    先了解几个函数:

    tolower()  a[i]=tolower(a[i])   将a字符转换为小写

    toupper()  a[i]=toupper(a[i])  将a字符转换为大写

    find()  int a=b.find(str,0)  返回str在字符串中第一次出现的位置(从index开始查找)如果没找到则返回string::npos

    
    
    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<cstdio>
    using namespace std;
    int main() {
    	string a, b;
    	cin >> a;
    	getchar();		//吸收输入a时的空格,头文件<cstdio>
    	getline(cin,b);
    
    	int lena = a.size(), lenb = b.size();
    
    	for (int i = 0; i<lena; ++i) {
    		a[i] = tolower(a[i]);
    	}
    	for (int i = 0; i<lenb; ++i) {
    		b[i] = tolower(b[i]);
    	}
    
    	a = ' ' + a + ' ';
    	b = ' ' + b + ' ';
    
    	if (b.find(a) == string::npos) {	//找不到
    		cout << -1 << endl;
    	}
    	else {
    		int cnt = 0, ans = b.find(a),t=b.find(a);
    		while (t != string::npos) {
    			cnt++;
    			t = b.find(a, t + 1);
    		}
    		cout << cnt << ' ' << ans << "
    ";
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    青瓷qici
    青瓷qici
    青瓷qici
    青瓷引擎_珍膳小游戏_巧妇有好米来做煮
    2013年12月30日 星期一 谷歌、百度地图拽取
    不懂网络知识,测试工程师真的能走得很远么
    测试和开发之间的博弈--没有硝烟的战争
    docker命令每次需要sudo操作解决方案
    Ubuntu 18.04安装Docker CE + NVIDIA-Docker
    windos10下安装ubuntu18双系统
  • 原文地址:https://www.cnblogs.com/52dxer/p/10425519.html
Copyright © 2011-2022 走看看