关于#c语言#的问题:从键盘输入2个字符串,计算字符串str1中字符串str2出现的次数

从键盘输入2个字符串,计算字符串str1中字符串str2出现的次数。要求:不使用字符串比较库函数,直接使用指针进行字符比较。
如:str1为“an”,str2为“they are an apple and an orange ”,则str1在str2中出现了3次。


#include <stdio.h>
#include <string.h>

int countString(char *str1,char *str2);//统计字符串出现次数
int main()
{
    char str1[100],str2[100],*p1=str1,*p2=str2;
    int k=0;
    scanf("%s",str1);
    scanf("%s",str2);
    k=countString(str1,str2);
    if(k==0)
        printf("NO\n");
    else    
        printf("%d\n",k);
    return 0;
}
int countString(char *str1,char *str2)//递归函数
{ 

    return (*str1=='\0'||strstr(str1,str2)==NULL)?0:1+countString(strstr(str1,str2)+strlen(str2),str2);

}

img

你题目例子错了吧,是出现4次。

img

代码如下:

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632