怎样用C语言编写程序判断字符串S1是否包含字符串S2.(不使用库函数)

 我来答
邛蕙竹恨寒
2019-10-11 · TA获得超过3903个赞
知道大有可为答主
回答量:3140
采纳率:27%
帮助的人:411万
展开全部
1.字符串S2的第一个字母在串S1中查找~若无则不包含
2.若有则取S2的第二个字母在串S1相对第一个找到的位置继续匹配~若不匹配,则回到第一步,和查找到的第二个和S1中匹配的S2的第一个字母
若匹配,则继续第2步
直到串S2的所有字符与串S1的字符完全匹配,则包含~
沧海雄风2009
推荐于2018-04-04 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2821万
展开全部
/////////////////没用系统函数 逻辑比较复杂 慢慢理解吧//////////////////
Yes
Press any key to continue
#include "stdio.h"

main()
{
int i,j,alen=0,blen=0,count;
char aa[]="123aabcefg";
char bb[]="abce";
i=0;
while (aa[i]!='\0')
{
alen++;
i++;
}
i=0;
while (bb[i]!='\0')
{
blen++;
i++;
}
for (i=0,count=0;i<alen;i++)
{
for (j=0;j<blen;j++)
{
if (aa[i]==bb[j++])
{
count++;
for (i+=2;aa[i]!='\0' && bb[j]!='\0';i++,j++)
{
if (aa[i]==bb[j])
{
count++;
}
}
if (count==blen)
{
printf("Yes\n");
break;
}
}
}
}
if (count!=blen)
{
printf("No\n");
}
}
有问题请追问 满意记得采纳哦
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
委紫倪飞鸿
2020-04-13 · TA获得超过1078个赞
知道小有建树答主
回答量:1704
采纳率:100%
帮助的人:7.8万
展开全部
第一行是要查找的字符串
第二行是被查找句子
输出要查找的字符串在被查找句子的首个位置
#include<stdio.h>
#include<string.h>
void
main()
{
int
i,j,la,lb,num=0;
char
c,a[120],b[4500];
while((c=getchar())!='\n')
a[num++]=c;a[num]='\0';
num=0;
while((c=getchar())!='\n')
b[num++]=c;b[num]='\0';
la=strlen(a);lb=strlen(b);
for(i=0;(lb-i)>=la;i++)
{if(b[i]==a[0])
{for(j=0;j<la;j++)
if(b[i+j]!=a[j])
break;
if(j==la)
{printf("%d\n",i+1);break;}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lt199025
2011-11-08 · TA获得超过122个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:122万
展开全部
去看看KMP模式匹配吧,挺难的,不过很有用的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-11-08
展开全部
这个要求快的话要用模式匹配算法 要求不高的话直接用for循环就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式