您的位置:首页 > 其它

论文搜索(158)

2020-06-29 05:04 71 查看

##字符串处理
allenlowesy突然从Marswind那里得知,光纤技术要结课了,期末考试内容是一篇论文。allenlowesy以为可以不动脑筋地水过去,但是那位他从来没有见过的老师却规定,论文字数不得少于2000字,更要命的是,参考文献必须是IEEE或者CSA的论文。
众所周知,IEEE上有很多很多很多很多论文。当allenlowesy打开IEEE的搜索界面寻找关键词为fiber的论文时,系统返回给他一大堆结果。
allenlowesy纠结了,他不可能把所有的论文都看了来确定是否有用。于是他假设,如果论文的标题中有一个单词是关键词(大小写也要一致),那么这篇论文是有用的。
现在allenlowesy需要从搜索结果中找到这些他认为有用的论文,那么这些论文有多少呢?
Standard Input
含多组测试数据,输入首先是一个整数T表示测试数据组数(T≤20)。
每组数据开始为一个整数N(N≤100),表示检索到的论文数
接下来1行是allenlowesy搜索的关键词,长度不超过20,只包括小写字母和大写字母。
接下来N行,每一行是一个论文的标题,长度不超过100,只包括小写字母、大写字母和空格。
Standard Output
每组数据输出一个整数M,表示allenlowesy认为有用的论文数。
如果没有一篇论文的标题包含有关键词,则输出Do not find。
在每组输出结果后再输出一个空行。

题目分析:判断每一个字符串中的单词是否匹配的问题。

#include<stdio.h>
int main(void)
{
int T;
scanf("%d",&T);
while(T--)
{
char kw[21],c;
int n,m=0,num=0;
scanf("%d",&n);
getchar();
while((c=getchar())!='\n')
{
kw[m]=c;
m++;
}
while(n--)
{
char title[101];
int i=0,j=0,k,m1=0;
while((c=getchar())!='\n')
{
title[m1]=c;
m1++;
}
while(i<m1)
{
j=0;
k=i;
if(kw[j]==title[i])
do{
i++;j++;
}while(kw[j]==title[i]&&j<m);
else i++;
if(k==0||title[k-1]==' ')
{
if(j==m&&title[i]==' ')
{
num++;break;
}
else if(j==m&&i==m1)
{
num++;break;
}
}
}
}
if(num==0) printf("Do not find\n\n");
else printf("%d\n\n",num);
}
return 0;
}

给的题目和代码都不难,稍加理解就可以通过。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: