求帮忙。。。c语言考试题目:编写函数int StrCount(char* str1,char* str2).
编写函数intStrCount(char*str1,char*str2).Str1和str2为两个输入的字符串.函数统计str2在str1中出现的次数,返回该数值.要求:...
编写函数int StrCount(char* str1,char* str2).Str1和str2为两个输入的字符串.函数统计str2在str1中出现的次数,返回该数值.要求:在主函数main中初始化str1和str2,调用函数StrCount(str1,str2)后输出结果.如输入str1为"howareyouareGGGare",str2为"are",那么调用函数StrCount后函数返回3。
#include<stdio.h>#include<string.h>int StrCount(char* str1,char* str2);main(){ char str1[100]="howareyouareGGGare",str2[20]="are"; //这里要是把串2改了答案就不对了?为啥// printf("%d\n",StrCount(str1,str2));}int StrCount(char* str1,char* str2){ char *p1,*p2; int i,j; i=j=0; for(p1=str1;*p1;p1++) { for(p2=str2;*p2;p2++) if(*p2==*p1) { i++; } //这里为啥不用p1++呢?// if(i==strlen(str2)) { j++; i=0; } } return j;} 展开
#include<stdio.h>#include<string.h>int StrCount(char* str1,char* str2);main(){ char str1[100]="howareyouareGGGare",str2[20]="are"; //这里要是把串2改了答案就不对了?为啥// printf("%d\n",StrCount(str1,str2));}int StrCount(char* str1,char* str2){ char *p1,*p2; int i,j; i=j=0; for(p1=str1;*p1;p1++) { for(p2=str2;*p2;p2++) if(*p2==*p1) { i++; } //这里为啥不用p1++呢?// if(i==strlen(str2)) { j++; i=0; } } return j;} 展开
展开全部
int strcount(char *str1,char *str2)
{
char *temp = str1;
int sun = 0;
while(temp != NULL && *temp != '\0')
{
temp = strstr(temp,str2);//char *strstr(char *str1,char *str2),标准C库函数,头文件string.h,作用:在str1中查找str2,并返回str2在str1中的位置。
temp+=strlen(str2);//int strlen(char *str),标准C库函数,头文件string.h,作用:计算str的长度,不包含结束符。
sun ++;
}
return sun;
}
{
char *temp = str1;
int sun = 0;
while(temp != NULL && *temp != '\0')
{
temp = strstr(temp,str2);//char *strstr(char *str1,char *str2),标准C库函数,头文件string.h,作用:在str1中查找str2,并返回str2在str1中的位置。
temp+=strlen(str2);//int strlen(char *str),标准C库函数,头文件string.h,作用:计算str的长度,不包含结束符。
sun ++;
}
return sun;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询