代码实现
思想:每一个循环取子串字符分别与母串字符比较,然后后移,记录母串中有多少个连续字符与子串字符相同。(程序中已详细注释,这里不再重复讲解)
//导入头文件
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
int i,j,k;//控制循环
int count=0;//计数器
char T[50];//定义母串,容量50
char P[10];//定义子串,容量10
printf("请输入 母串:\n");//信息提示
gets(T);//读取数据
printf("请输入 子串:\n");//信息提示
gets(P);//读取数据
int TLen=strlen(T);//母串长度
int PLen=strlen(P);//子串长度
for(i=0;i<=TLen-PLen;i++){ //循环比较
for(j=0,k=i;j<PLen&&P[j]==T[k];j++,k++); //判断是否相同
if(j==PLen){ //到达长度
count++;//计数器增加
}
}
printf("子串在母串中出现的次数共 %d 次\n",count);
return 0;
}