c语言字符串匹配的问题

各位大哥,小弟是c语言菜鸟,我想求一个程序,要求是对一个给定的char*字符串A,用另一个char*的字符串B对其进行匹配搜索,假如A中有B的子串,则返回真,否则为假,求... 各位大哥,小弟是c语言菜鸟,我想求一个程序,要求是对一个给定的char*字符串A,用另一个char*的字符串B对其进行匹配搜索,假如A中有B的子串,则返回真,否则为假,求高手们帮忙给个完整的程序。
DesireFish,小弟谢谢你,这是15分,请笑纳。。。。。。。。
展开
 我来答
DesireFish
推荐于2018-05-04 · TA获得超过298个赞
知道小有建树答主
回答量:226
采纳率:100%
帮助的人:118万
展开全部
晕!这就是最简单的了,你把头文件string.h包含起来调用strstr()函数就完成了。

string.h的库函数strstr()帮你完成此项功能,strstr()的功能就是在一个字符串中查找另一个字符串。下面是测试函数及strstr()函数。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void) /*测试strstr()*/
{
char *A="abcdefghi",*B,*C;

B = (char*)malloc(10);
memset(B, 0, sizeof(B));
C = (char*)malloc(10);
memset(C, 0, sizeof(C));

B[0]='f';B[1]='g';B[2]='h';

C = strstr(A,B);
printf("A=\"%s\"\n",A);
printf("B=\"%s\"\n",B);
printf("C=\"%s\"\n",C);
return 0;
}
#if 0
/*strstr()函数的返回值为s中匹配字窜的地址*/
char * strstr
(
const char * s, /* string to search */
const char * find /* substring to look for */
)
{
char *t1;
char *t2;
char c;
char c2;

if ((c = *find++) == 0) /* <find> an empty string */
return ((char *)(s));

for (;;)
{
while (((c2 = *s++) != 0) && (c2 != c))
;

if (c2 == 0)
return (NULL);

t1 = (char *)(s);
t2 = (char *)(find);

while (((c2 = *t2++) != 0) && (*t1++ == c2))
;

if (c2 == 0)
return ((char *)(s - 1));
}
}
#endif
百度网友29afc6726
2006-10-20 · TA获得超过342个赞
知道小有建树答主
回答量:456
采纳率:0%
帮助的人:265万
展开全部
如果是求取字符串B是否是A其中的部分字串,比如A=“aaabbcdf”,B=“bcd”,此处应该返回真,需要一个嵌套循环,程序需要那么多!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式