统计单词数
一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。
现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。
注意:匹配单词时,不区分大小写,但要求完全匹配, 即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例 1), 如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例 2)。
输入格式
第 1 行为一个字符串,其中只含字母,表示给定单词;
第 2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。
输出格式
只有一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字 母在文章中的位置,位置从 0 开始);如果单词在文章中没有出现,则直接输出一个整数 −1。
数据规模与约定
1≤ 单词长度 ≤10;
1≤ 文章长度 ≤1,000,000。
输出时每行末尾的多余空格,不影响答案正确性
样例输入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
题目来源
NOIP 2011 普及组

提示
样例 1 中输出结果表示给定的单词 To 在文章中出现两次,第一次出现的位置为 0。
样例 2 中表示给定的单词 to 在文章中没有出现,输出整数 -1。

问题链接:JSK-27321 统计单词数
问题描述:(略)
问题分析
    这是一个字符串匹配问题,可以有多种解法。
    一种做法是使用字符串匹配函数strstr()来解,这时候单词和文本字符串两端都先加上一个空格,然后再进行匹配。这样做比较方便,能够确保正确切分单词。也可单纯用字符串匹配的方法来实现。
程序说明:(略)
参考链接:(略)
题记:能用库函数则用库函数。

AC的C语言程序如下:

/* JSK-27321 统计单词数 */#include <stdio.h>
#include <ctype.h>
#include <string.h>#define N 10
#define N2 1000000char word[N + 3], text[N2 + 3];int main(void)
{gets(word + 1);gets(text + 1);int i;for(i = 1; word[i]; i++)if(isupper(word[i]))word[i] = tolower(word[i]);for(i = 1; text[i]; i++)if(isupper(text[i]))text[i] = tolower(text[i]);int cnt = 0, firstpos, len;len =  strlen(text + 1) + 1;text[0] = ' ', text[len] = ' ', text[len + 1] = '\0';len = strlen(word + 1) + 1;word[0] = ' ', word[len] = ' ', word[len + 1] = '\0';char *pos = text;while(*pos) {pos = strstr(pos, word);if(pos == NULL)break;else {if(++cnt == 1)firstpos = pos - text;pos += len;}}if(cnt == 0)printf("-1\n");elseprintf("%d %d\n", cnt, firstpos);return 0;
}

JSK-27321 统计单词数【字符串】相关推荐

  1. 洛谷 - P1308 统计单词数(字符串+模拟)

    题目链接:点击查看 题目大意:给出一个字符串a和字符串b,现在问字符串b中有多少个单词与字符串a相等,并记录第一次出现的位置 题目分析:看似很简单的一个模拟题,其实包含了不少需要注意的地方: stri ...

  2. [ZCMU OJ]1750: 统计单词数(字符串处理/find运用)

    Description 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你 ...

  3. Bailian4030 统计单词数【文本处理】

    4030:统计单词数 总时间限制: 1000ms 内存限制: 65535kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次 ...

  4. 信息学奥赛一本通 1400:统计单词数 | 1954:【11NOIP普及组】统计单词数 | OpenJudge NOI 1.12 05 | 洛谷 P1308 [NOIP2011 普及组] 统计单词数

    [题目链接] ybt 1400:统计单词数 ybt 1954:[11NOIP普及组]统计单词数 OpenJudge NOI 1.12 05:统计单词数 洛谷 P1308 [NOIP2011 普及组] ...

  5. Python:读出文本本件,统计单词数输出;读出文本文件,随机输出其中的10个单词

    #读出文本本件,统计单词数输出:读出文本文件,随机输出其中的10个单词 import re import random f=open("this.txt","r" ...

  6. TZOJ 4865 统计单词数(模拟字符串)

    描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的 ...

  7. 1750: 统计单词数(某个单词出现次数)

    zcmu: 1750: 统计单词数 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 379 Solved: 74 [Submit][Status][Web ...

  8. 统计单词数(洛谷-P1308)

    题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给 ...

  9. NOIP2011 统计单词数(通俗易懂版本)

    题目 AC代码 #include<bits/stdc++.h> using namespace std; int main() {string str,s1;int ans=0,pos,i ...

最新文章

  1. 网络负载均衡-负载均衡器
  2. 王喜文:图解新基建,细说新机遇(100图)
  3. python打飞机源代码-如何用 Python 打飞机 ?
  4. 贪心算法-跳跃游戏——b
  5. hdu4717 三分(散点的移动)
  6. Python_基础_6
  7. 如何在Android Studio里关掉instant run
  8. php冒泡排序和快速排序笔记
  9. 官网下载的mysql密码忘了怎么办_MySQL密码忘了怎么办?MySQL重置root密码方法
  10. Script Debugger + VS.Net调试javascript [转]
  11. LeetCode 121. Best Time to Buy and Sell Stock
  12. SendMessage wMsg常量值参考
  13. 远程办公 4 大坑,坑坑“致命”!
  14. crontab 简介
  15. Hacker Plus:Facebook 推出漏洞奖励 “忠诚计划”
  16. Android -- ViewGroup源码分析+自定义
  17. matlab 关联矩阵,(案例)利用Matlab实践关联矩阵与邻接矩阵的转换
  18. 打印机质量测试软件,打印机断针测试软件
  19. 优化GNU/Linux桌面安装的九个步骤
  20. cql oracle,执行简单的CQL操作

热门文章

  1. GIS制图课程目录(持续整理)
  2. ArcGIS制图表达Representation-制图表达使用须知
  3. 苹果本Win10双系统开启CPU虚拟化
  4. Intellij Idea打包jar
  5. android studio创建项目一直,Android Studio在创建/导入项目的时候,一直处于building “XXX”gradle project info的解决办法...
  6. 大学生慕课第二周学习笔记
  7. JavaScript(二)数据类型
  8. Doris之拦截规则 sql黑名单
  9. Spark SQL介绍和特点
  10. JSP中application的用法