Code Bye

大一编程题

函数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″
帮忙分析分析这个题,填了这两个空的运行过程。
解决方案

80

第一空,只要s、t 没到末尾 循环
第二空,假如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);
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明大一编程题