内存:128  时间:1

题目描述

设s、t为两个字符串,分别放在两个一维数组中,m、n分别为其长度,判断t是否为s的子串。如果是,输出子串所在位置(第一个字符),否则输出0。

输入

输入  长度m和n,字符串s和t

输出

子串所在的位置

样例输入

5 3
adsff
dsf

样例输出

2

提示

代码如下

#include<stdio.h>
int main()
{
    char t[200],s[200];
     int n,m;
     scanf("%d%d",&n,&m);
     scanf("%s%s",t,s);
     int i,j=0;
     for(i=0;i<n;)
     {
         if(t[i]==s[j])
         {
             i++;
             j++;
         }
         else
         {
             i=i-j+1;
             j=0;
         }
         if(j==m)
         {
             printf("%d\n",i-j+1);
             return 0;
         }
     }
     printf("0\n");
    return 0;
}

代码来源于互联网,仅供参考!