C语言题目:判别一个字符串是否是另一个字符串的子串,若是子串输出子串第一次出现的位置,若不是则输出-1

#include<stdio.h>intmain(){inti,j,m,n;chara[100],b[100];gets(a);gets(b);for(i=0;a[i]!... #include<stdio.h>
int main()
{
int i,j,m,n;
char a[100],b[100];
gets(a);
gets(b);
for(i=0;a[i]!='\0';i++)
{
for(j=0;b[j]!='\0';j++)
{
if(a[i]==b[j])
{
for(m=i+1,n=j+1;b[n]!='\0'&&a[m]!='\0';m++,n++)
{
if(a[m]!=b[n])
printf("-1");break;
if(b[n+1]=='\0')
printf("%d\n",j);break;
}
}

}
}
return 0;
}
应该怎么改啊?
展开
 我来答
kaixingui2012
推荐于2017-09-26 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6453万
展开全部
#include<stdio.h>
int main()
{
    int i,j;
    char a[100],b[100];

    gets(a);
    gets(b);
    
for(i=0;a[i]!='\0';i++)
    {
if ( a[i]==b[0] )
{
int k;
for(k=i+1,j=1;b[j]!='\0';j++,k++)
{
if ( a[k]!=b[j] )
break;
}
if ( b[j]=='\0' )
{
printf("%d\n", i );
break;
}
}
    }
if( a[i]=='\0' )
printf("-1\n");
    return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式