从键盘输入2个字符串,计算字符串str1中字符串str2出现的次数。

要求,不使用字符串比较函数,直接使用指针进行字符比较
#include "stdio.h"
int main()
{
char str1[81],str2[20], *p1, *p2;
int sum=0;
printf("Please input two strings\n");
scanf("%s%s",str1,str2);
p1=str1;
p2=str2;
{在此补充完整
}
printf("%d",sum);
}
最新回答
紫珺婳浅

2024-09-15 17:11:33

既然题目里出现了指针,那肯定是要考指针了

char *ptr = NULL;
do
{
    char *ptr = strstr(p1, p2);

    if( ptr ){
        sum ++;
        ptr++;
    }
}while( ptr && *ptr != 0 )

strstr的意思就是在p1里找p2并返回所有的结果,找到了就进if,并在里面对sum递增,并且到下一个直到全部遍历完

漫天飞雪的夏日

2024-09-15 13:30:44

int i,j,flag=0;
for (i=0;*(p1+i)!='\0';i++){
if (*(p1+i)==*p2){
for (j=1;*(p2+j)!='\0' && *(p1+i+j)!='\0';j++){
if (*(p1+i+j)!=*(p2+j)){
flag=1;
break;
}
}
if (!flag){
sum++;
}
}