C++如何统计一个字符串出现次数
1个回答
展开全部
#include <stdio.h>
#include <string.h>
#define M 100
int main(void)
{
char a[M],b[] = "city",c[] = "mother",buf[M];
char *p=NULL,*q=NULL;
int k=0,j=0,m,n;
gets(a);
strcpy(buf, a);
m=strlen(a);
n=strlen(b);
for(int i=0;i<m;i++)
{
p=strstr(a,b);//获取b的位置等同于存在一个字符串b
if(p)
{
k++;
q=p+n;//截取字符之后索引应到达的位置
strcpy(a,q);//将源字符串缩进到比较完毕之后的位置
a[strlen(a)]='\0';
q=NULL;//清空索引
p=NULL;
}
else
break;//搜索不到直接退出
}
n=strlen(c);
for(int i=0;i<m;i++)
{
p=strstr(buf,c);//获取b的位置等同于存在一个字符串b
if(p)
{
j++;
q=p+n;//截取字符之后索引应到达的位置
strcpy(buf,q);//将源字符串缩进到比较完毕之后的位置
a[strlen(buf)]='\0';
q=NULL;//清空索引
p=NULL;
}
else
break;//搜索不到直接退出
}
printf("a got %d city and %d mother\n",k,j);
return 0;
}
#include <string.h>
#define M 100
int main(void)
{
char a[M],b[] = "city",c[] = "mother",buf[M];
char *p=NULL,*q=NULL;
int k=0,j=0,m,n;
gets(a);
strcpy(buf, a);
m=strlen(a);
n=strlen(b);
for(int i=0;i<m;i++)
{
p=strstr(a,b);//获取b的位置等同于存在一个字符串b
if(p)
{
k++;
q=p+n;//截取字符之后索引应到达的位置
strcpy(a,q);//将源字符串缩进到比较完毕之后的位置
a[strlen(a)]='\0';
q=NULL;//清空索引
p=NULL;
}
else
break;//搜索不到直接退出
}
n=strlen(c);
for(int i=0;i<m;i++)
{
p=strstr(buf,c);//获取b的位置等同于存在一个字符串b
if(p)
{
j++;
q=p+n;//截取字符之后索引应到达的位置
strcpy(buf,q);//将源字符串缩进到比较完毕之后的位置
a[strlen(buf)]='\0';
q=NULL;//清空索引
p=NULL;
}
else
break;//搜索不到直接退出
}
printf("a got %d city and %d mother\n",k,j);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |