编写一个程序,判定一个字符串是否是另一个字符串的子串,若是,返回子串在主串中的位置。要求:

是C语言程序... 是C语言程序 展开
 我来答
匿名用户
2013-05-08
展开全部
好 重新修改一下,
//===
#include <stdio.h>
#include <string.h>
//---
int cmpsubstr(char a[81],char b[81])
{
int i,j,flag=-1;
for(i=0;i<=(strlen(a)-strlen(b));i++)
{
flag=i;
for(j=0;j<strlen(b);j++)
if(b[j]!=a[i+j])
break;
if(j==strlen(b))
return flag;
}
return -1;
}
//---
void main()
{
char a[81],b[81];
int n;
printf("输入字符串a:");
gets(a);
printf("输入字符串b:");
gets(b);
if(strlen(a)>=strlen(b))
{
n=cmpsubstr(a,b);
if(n!=-1)
printf("b是a的子串,位置从a[%d]开始",n);
else
printf("b不是a的子串");
}
else
{
n=cmpsubstr(b,a);
if(n!=-1)
printf("a是b的子串,位置从b[%d]开始",n);
else
printf("a不是b的子串");
}
}
//===
匿名用户
推荐于2018-03-14
展开全部
#include <stdio.h>
void main()
{char a[100],b[100];<br/> int i,j,k;<br/> gets(a);<br/> gets(b);<br/> for(i=0;a[i]!='\0';i++)<br/> { k=i;<br/> j=0;<br/> while(a[k]==b[j])<br/> {<br/> k++;<br/> j++;<br/> }
if(b[j]=='\0')
{printf("%d\n",k-j+1);return;}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式