1814 简单的字符串查找

来源:互联网 发布:办公鼠标 知乎 编辑:程序博客网 时间:2024/05/21 05:38
 
描述

给出主串S和模式串T,判断T是否在S中出现,如果出现,输出最后一次出现的位置(从1开始计算)。(S长度不超过1000,T的长度小于S,T和S都非空)

输入

第一行,一个整数n,测试数据的组数。
接下来由n组数据,每组有两行,分别是主串S和模式串T

输出

如果T没有在S中出现,输出“No”(不行引号,占一行).否则,输出T在S中最后一次出现的位置(S的第一字符位置为1)

样例输入
2
abcd
e
abcd
a
样例输出
No
1

数组操作即可,也可用find函数

#include <stdio.h>#include <string.h>int main(){int number,t;int length,i,lengthmax,k;int result,flag;char a[1010];char goal[1010];scanf("%d",&number);for(t=1;t<=number;t++){flag=0;scanf("%s",&a);scanf("%s",&goal);length=strlen(goal);lengthmax=strlen(a);for(i=0;i<=lengthmax-length;i++){if(a[i]==goal[0]){for(k=1;k<length;k++){if(a[i+k]==goal[k]){continue;}elsebreak;}if(k==length){result=i;flag=1;}}}if(flag==1)printf("%d\n",result+1);elseprintf("No\n");}return 0;}


 

 

原创粉丝点击