c语言:题目如下,为什么我这样写不对呢?如何改进?谢谢 80
题目:从一段字符串中返回另一段字符串的第一次出现的位置代码:intany(chars1[],chars2[]){inti,j,a,b;for(i=0;s1[i]!='\0...
题目:从一段字符串中返回另一段字符串的第一次出现的位置
代码:int any(char s1[], char s2[])
{
int i,j,a,b;
for (i = 0; s1[i]!='\0' ; i++)
{
for ( j=0;s2[j]!='\0' ; j++)
b=1;
if(s1[i]==s2[j])
{
a=i;
b=0;
}
break;
if(b)
a=-1;
b=1;
break;
}
return a;
} 展开
代码:int any(char s1[], char s2[])
{
int i,j,a,b;
for (i = 0; s1[i]!='\0' ; i++)
{
for ( j=0;s2[j]!='\0' ; j++)
b=1;
if(s1[i]==s2[j])
{
a=i;
b=0;
}
break;
if(b)
a=-1;
b=1;
break;
}
return a;
} 展开
2个回答
展开全部
int any(char s1[], char s2[])
{
int len1=0,len2=0,i,j;
while (s1[len1]) len1++;
while (s2[len2]) len2++;
if (len1>=len2)
{
for (i=0;i<=len1-len2;i++)
{
for (j=0;j<len2;j++) if (s1[i+j]!=s2[j]) break;
if (j==len2) return i;
}
}
return -1;
}
{
int len1=0,len2=0,i,j;
while (s1[len1]) len1++;
while (s2[len2]) len2++;
if (len1>=len2)
{
for (i=0;i<=len1-len2;i++)
{
for (j=0;j<len2;j++) if (s1[i+j]!=s2[j]) break;
if (j==len2) return i;
}
}
return -1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询