函数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);
}
 
                    

![[小白求帮助]分配的内存什么时候需要手动释放](https://www.codebye.com/wp-content/themes/douth/timthumb.php?src=https://www.codebye.com/wp-content/themes/douth/assets/img/pic/6.jpg&h=110&w=185&q=90&zc=1&ct=1)