统计一个长度为2的字符串在另一个字符串中的出现次数
RT。 下面是我写的代码,但是出现了个让俺纠结的现象。#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int fun(char *str, char *substr)
{
int n = 0; char *p1, *p2;
p1 = str; p2 = substr;
while (*p1 != '\0')
{
while (*p2 != '\0')
{
if(*p2 == *p1)
{
p1++; p2++;
}
else
{
p1++; p2 = substr;
}
}
if (*p2 == '\0')
{
n++; p2 = substr;
}
}
return n;
}
void main()
{
FILE *wf;
char str[81],substr[3];
int n;
system("CLS");
printf("输入主字符串: ");
gets(str);
printf("输入子字符串: ");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n ",n);
/******************************/
wf=fopen("out.dat","w");
n=fun("asd asasdfg asd as zx67 asd mklo","as");
fprintf(wf,"%d",n);
fclose(wf);
/*****************************/
}
这里发生错误,但是下面的却又很正常,真奇怪。
求指点迷津。