统计单词数

时间限制:1 s

内存限制:128MB

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

【输入】
输入文件名为stat.in,2行。
第1行为一个字符串,其中只含字母,表示给定单词;
第2行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

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

输入输出样例1

输入:

To
to be or not to be is a question

输出:

2 0

【输入输出样例1说明】
输出结果表示给定的单词To在文章中出现两次,第一次出现的位置为0。

输入输出样例2

输入:

to
Did the Ottoman Empire lose its power at that time

输出:

-1

【输入输出样例2说明】
表示给定的单词to在文章中没有出现,输出整数-1。
【数据范围】
1≤单词长度≤10。
1≤文章长度≤1,000,000。

 #include<stdio.h>
#include<string.h>
int main()
{
char s1[],s2[];
int f1;
long first=-,num=;//first:首次出现的下标。num:总共出现的次数
char ch;
int i;
int index=-;//表示当前扫描文章的下标 freopen("stat2.in","r",stdin);
freopen("stat2.txt","w",stdout); scanf("%s",s1);
getchar();//吸收回车符
for(i=;s1[i]!='\0';i++)
{
if(s1[i]>='A'&&s1[i]<='Z')//若是大写字母,则变为小写字母
s1[i]=s1[i]+;
} f1=;//尚未开始输入文章当中的新单词
i=;//从文章输入的字符保存在s2数组当中的下标
while((ch=getchar())!=EOF)
{
index++;
if(ch==' ')
{
if(f1==) { continue; }
else
{
s2[i]='\0';
if(strcmp(s1,s2)==)
{
if(first==-)
first=index-strlen(s2);
num++;
}
i=;
f1=;
}
}
else
{
f1=;
if(ch>='A'&&ch<='Z') ch=ch+;
s2[i]=ch;
i++;
}
}
if(num>)
printf("%d %d\n",num,first);
else printf("-1\n");
return ;
}

noip2011普及组——统计单词数的更多相关文章

  1. noip2011普及组:统计单词

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

  2. NOIP2011-普及组复赛-第二题-统计单词数

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

  3. 洛谷 P1308 统计单词数【string类及其函数应用/STL】

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

  4. 洛谷 P1308 统计单词数

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

  5. NOIP2011 普及组 T3 洛谷P1309 瑞士轮

    今天题做太少,放道小题凑数233 题目背景 在双人对决的竞技性比赛,如乒乓球.羽毛球.国际象棋中,最常见的赛制是淘汰赛和循环赛.前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高.后者的特点是较为公 ...

  6. 使用jdk8 stream 统计单词数

    在我的SpringBoot2.0不容错过的新特性 WebFlux响应式编程里面,有同学问如何使用stream统计单词数.这是个好例子,也很典型,在这里补上. 下面的例子实现了从一个文本文件读取(英文) ...

  7. 统计单词数:string函数使用

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

  8. java实现洛谷P1308统计单词数

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

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

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

随机推荐

  1. Squid代理之透明代理

    二.透明代理 1.检测squid是否安装

  2. BSP、PSP到底指什么?

    /************************************************************************* * BSP.PSP到底指什么? * 说明: * B ...

  3. LeetCode Rotate List (链表操作)

    题意: 将链表的后面k个剪出来,拼接到前面,比如 1->2->null 变成2->1->null.数字代表一段的意思. 思路: k有3种可能,k>n,k<n,k=n ...

  4. JavaScript数据结构——链表

    链表:存储有序的元素集合,但不同于数组,链表中的元素在内存中不是连续放置的.每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成. 好处:可以添加或移除任意项,它会按需扩容 ...

  5. 如何将character_set_database latin1 改为 gbk(转)

    第一篇文章: 原地址: Linux服务器下文件名为 my.cnf Windows 下文件名为 my.ini 问题:通过sql语言向数据库中添加中文的数据的时候,查询是显示的是乱码. 原因:当初安装数据 ...

  6. Linux Shell 命令

    (1) 操作一个文件并对文件查询行进行切分处理 (或者1-) (2) 操作文件进行去重并显示重复次数 | sort | uniq -c (3) 查看总的汇总行数 | sort | uniq -c | ...

  7. suse linux修改hostname

    SUSELinux中修改hostname需要修改以下两个文件 $vi /etc/HOSTNAME $vi /etc/hosts 然后重启系统即可.

  8. WebRTC录音(1)-实现通话双向录音

    最近公司的iPad项目中一个功能点涉及到了VOIP通讯中的录音,需要在已有的WebRTC引擎中增加录音功能,录制通话双方的声音参考了往上一位兄弟的博文(链接在此 http://blog.csdn.ne ...

  9. pascal矩阵

    帕斯卡矩阵 1.定义       帕斯卡矩阵:由杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵. 杨辉三角形表是二次项 (x+y)^n 展开后的系数随自然数 n 的增大组成的一个三角形表. 如4 ...

  10. LAMT基于mod_jk方式的负载均衡集群

    一.系统环境 1.apache服务器 系统环境:CentOS release 6.5 (Final) ip地址:192.168.1.203 2.tomcat1服务器 系统环境:CentOS relea ...