C语言中,输入一个字符串A 在输入一个字符串B,求字符串A中包涵几个字符串B,求解答

要个能运行起来的... 要个能运行起来的 展开
 我来答
前端小茶馆
2011-07-23 · TA获得超过962个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:351万
展开全部

我想说明几点:

【1】.我用功能函数把某些功能分离出来了

【2】.对于这样的字符串aaaaaa aa,就是字符串A为6个a,字符串B为2个a,我的程序输出的是3,而不是5。

【3】.如果字符串A的长度比字符串B的长度小,则输出0,因为无论如何字符串A也不可能包含字符串B的。

#include <stdio.h>

#include <string.h>

char s[200], a[200];

int ok(int i, int t)//计算从字符串s的i位置开始的t个字符是否是字符串a

{

    int j, k;

    for(j=i, k=0; k<t; j++, k++)

    {

        if(s[j] != a[k]) return 0;//0表示不是字符串a

    }

    return 1;

}

int count()

{

    int i, j, num, t1, t2;

    num=0;

    t1 = strlen(s), t2 = strlen(a);

    if(t1<t2) return 0;//如果字符串s比字符串a的长度还小,肯定不能包含字符串a

    for(i=0; i<t1-t2+1; i++)

    {

        if(ok(i, t2)==1)

        {

            num++;

            i = i + t2 - 1;

        }

    }

    return num;

}

int main()

{

    int i, j;

    while(scanf("%s %s", s, a)==2)

    {

        printf("%d\n", count());

    }

}

shine1991
科技发烧友

2011-07-23 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.4亿
展开全部
# include <stdio.h>
# include <string.h>
int cmp(char *p,char *q);
main()
{
char A[1024],B[1024],*p,*q;
int n,i;
puts("string A:");
gets(A);
puts("string B:");
gets(B);
p=A;
q=B;
n=0;
while(*p)
{
if(cmp(p,q))
++n;
++p;
}
printf("%d",n);
}
int cmp(char *p,char *q)
{
int i;
while(*q!='\0')
{
if(*q++!=*p++)
return 0;
}
return 1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yunlkong
2011-08-06 · TA获得超过5711个赞
知道大有可为答主
回答量:9695
采纳率:0%
帮助的人:2亿
展开全部
void writeto(link_stu H)
{
FILE *a;
link_stu p;
p=H->next;
a=fopen("stu.dat","w+");
fwrite(H,sizeof(lnode_stu),1,a);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sprendity
2011-07-23 · TA获得超过6277个赞
知道大有可为答主
回答量:3475
采纳率:100%
帮助的人:3937万
展开全部
char a[]="12341248712 485212";
char *b="12",*c=a;;
int i=0;
while((c=strstr(c,b))!=NULL)
{i++;
puts(c);
c+=strlen b; }

cout<<i;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式