#include<stdio.h>
int str_count(char *string,char *substring);
int main()
{
char str[100],substr[20];
int count;
printf("Please input a string:");
gets(str);
printf("Please input a substring:");
gets(substr);
count=str_count(str,substr);
printf("The count is %d",count);
return 0;
}
int str_count(char *string,char *substring)
{
int i,j,k;
int count=0;
for(i=0;string[i]!='\0';i++)
{
for(j=i,k=0;substring[k]==string[j];k++,j++)
{
if(substring[k++]=='\0')
{
count++;
break;
}
}
}
return count;
}
#include<stdio.h>
int str_count(char* string, char* substring);
int main()
{
char str[100], substr[20];
int count;
printf("Please input a string:");
gets_s(str);
printf("Please input a substring:");
gets_s(substr);
count = str_count(str, substr);
printf("The count is %d", count);
return 0;
}
int str_count(char* string, char* substring)
{
int i, j, k;
int count = 0;
for (i = 0; string[i] != '\0'; i++)
{
for (j = i, k = 0; substring[k] == string[j]; k++, j++)
{
if (substring[k+1] == '\0')
{
count++;
break;
}
}
}
return count;
}
substring[k++]=='\0' 此处k++错误,不需要++,
判断时指针也向后偏移一位,相当与一次循环后移了两位,两个字符串自然对不上了。