有点搞不懂,不知道这样做对不对

定义两个字符串s和t,在s中查找t。如果能够找到,则输出t在s中首次出现的第一个字符的下标;否则,输出“NotFound”。举例:chars[30]=“abcdbcdefg”;chart[10]=“bcde”;结果为4。

:int search(char *p,char *q)
{
int lenp=strlen(p),lenq=strlen(q),i,j,k;
char *s;
for(i=0;i<=(lenp-lenq);i++){
s=p+i;
k=1;
for(j=0;j<lenq;j++){
if(s!=(q+j)){
k=0;
break;
}
//p++;
s++;
}

if(k==1)
break;
}
if(k==0)
return (-1);
else
return (i);
}

供参考:

#include <stdio.h>
#include <string.h>
#define MAXS 81
char* search(char* s, char* t);
int main()
{
    char s[MAXS], t[MAXS], * pos;
    gets(s);    //输入字符串 s
    gets(t);    //输入字符串 t
    pos = search(s, t);
    if (pos != NULL)
        printf("%d", pos - s);
    else
        printf("Not Found");

    return 0;
}
char* search(char* s, char* t)
{
    int i, j, k, flg;
    char* pos = NULL;
    for (i = 0, flg = 1; flg && s[i] != '\0'; i++)
        for (j = i, k = 0; t[k] == s[j]; k++, j++)
            if (t[k + 1] == '\0') { pos = s + i; flg = 0; break; }
    return pos;
}