函数index(char s[],char t[])检查字符串s中能否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则返回-1。
index(char s[],char t[])
{
int i,j,k;
for(i=0;s[i]!=’\0’;i++)
{
for(j=i,k=0;填空1______&&s[j]==t[k];j++,k++)
;
if(填空2_______)
return (i);
}
return (-1);
}
填空1 s[j]!=”\0″&&t[k]!=”\0″
填空2 t[k]==”\0″
帮忙分析分析这个题,填了这两个空的运行过程。
index(char s[],char t[])
{
int i,j,k;
for(i=0;s[i]!=’\0’;i++)
{
for(j=i,k=0;填空1______&&s[j]==t[k];j++,k++)
;
if(填空2_______)
return (i);
}
return (-1);
}
填空1 s[j]!=”\0″&&t[k]!=”\0″
填空2 t[k]==”\0″
帮忙分析分析这个题,填了这两个空的运行过程。
解决方案
80
第一空,只要s、t 没到末尾 循环
第二空,假如t 到达了末尾,证明for中每个字符都得到了匹配
第二空,假如t 到达了末尾,证明for中每个字符都得到了匹配
int index(char s[],char t[]) { int i,j,k; for(i=0;s[i]!="\0";i++) { for(j=i,k=0; s[j]!="\0" && t[k]!="\0" && s[j]==t[k];j++,k++) ; if( t[k]=="\0" ) return (i); } return (-1); }