用c语言实现。 输入两个字符串string1,string2,检查string1中是否有包含string2。
如果有,则输出在string1中出现的次数及每次出现的起始位置。如没有则输出NO。例:string1="thedaythemonth";sting2="the";结果为:...
如果有,则输出在string1中出现的次数及每次出现的起始位置。如没有则输出NO。例:
string1="the day the month";
sting2="the";
结果为:出现3次,起始位置分别是:0,8.
又如string1="aaabacad"
string2="a"
结果为:出现5次,起始位置分别是0,1,2,4,6 展开
string1="the day the month";
sting2="the";
结果为:出现3次,起始位置分别是:0,8.
又如string1="aaabacad"
string2="a"
结果为:出现5次,起始位置分别是0,1,2,4,6 展开
2个回答
展开全部
给你一个类似的参考代码 核心函数就是一个strstr();
#include <stdio.h>
int main()
{
char x[200];
char * p = NULL;
char * pp = NULL;
int a = 0;
int n;
printf("输入个字符串:");
scanf("%s",x);
p=x;
while (1)
{
pp = NULL;
pp = strstr(p,"r");
if (pp)
{
if(strlen(x)>(pp-x))
{
pp++;
}
p = pp ;
a++;
}
else
{
printf("字符串中一共有%d个r",a);
break;
}
}
#include <stdio.h>
int main()
{
char x[200];
char * p = NULL;
char * pp = NULL;
int a = 0;
int n;
printf("输入个字符串:");
scanf("%s",x);
p=x;
while (1)
{
pp = NULL;
pp = strstr(p,"r");
if (pp)
{
if(strlen(x)>(pp-x))
{
pp++;
}
p = pp ;
a++;
}
else
{
printf("字符串中一共有%d个r",a);
break;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <string.h>
int count_str(char *A,char *B)
{
int count=0;
char *q=A;
printf("出现的位置: ");
while(q=strstr(q,B))
{
printf("%d ",q-A);
q++;
count++;
}
printf("\n出现次数%d\n",count);
}
int main()
{
char A[]="abcabeab",B[]="ab";
count_str(A,B);
return 0;
}
一定要采纳呀!
#include <string.h>
int count_str(char *A,char *B)
{
int count=0;
char *q=A;
printf("出现的位置: ");
while(q=strstr(q,B))
{
printf("%d ",q-A);
q++;
count++;
}
printf("\n出现次数%d\n",count);
}
int main()
{
char A[]="abcabeab",B[]="ab";
count_str(A,B);
return 0;
}
一定要采纳呀!
追问
while 循环中 printf("%d ",q-A); q-A怎么理解?为啥不是A-q???
请回答,谢谢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询