题目描述:
补全函数index(char s[], char t[])检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则送回-1。
#include<stdio.h>
int index(char s[], char t[])
{
int i, j, k;
for (i = 0; s[i] != '\0'; i++)
{
[???????????]
}
return(-1);
}
int main()
{
static char src[256];
static char dst[256];
gets(src);
gets(dst);
printf("%d", index(src, dst));
return 0;
}
参考代码:
k=0;
if(s[i]==t[0])
{
k=1;
for(j=1;t[j]!='\0';j++)
{
if(t[j]!=s[i+j])
{
k=0;
break;
}
}
}
if(k) return i;
讲解:
首先对字符串s进行检索,若找到某个字符与字符串t的第一个字符相同,则再从该字符开始检索字符串t长度个字符,若都与t相同,则跳出,返回此时的字符所在位置。在检索时,使用了标记k,若检索时s串与t串稍有不同,则直接跳出,改变k=0,表示该位置不能找到子串t。若顺利找到子串t,则不改变k,使子串的位置被返回。
求实求真,大气大为。