定义两个字符串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;
}