题目:输入父串子串,显示父串中子串的个数
#include <stdio.h>
#include <string.h>#define MAX 100
int main()
{
char src[MAX]; //定义父串数组的名字src
char sub[MAX]; //定义子串数组的名字sub
int i;
int j; //定义循环变量
int count = 0; //变量初始化
int src_len = 0;
int sub_len = 0; //定义数组的长度并初始化
printf("Please input fatherstring:\n"); //显示提示信息
scanf("%s",src); //输入父串
printf("Please input sonstring:\n"); //显示提示信息
scanf("%s",sub); //输入子串
printf("fatherstring = %s\n",src);
printf("sonstring = %s\n",sub); //显示输入的值是否对应正确
src_len = strlen(src);
sub_len = strlen(sub); //用函数表示父串子串的长度
for(i = 0;i < src_len;i++) //外层循环,遍历父串的所有内容
{
for(j = 0;j < sub_len;j++) //内层循环,遍历子串的所有内容
{
if(src[i + j] != sub[j]) //选择条件,对应相等则继续检测
{
i = j + i - 1;
j = 0;
}
else
{
continue; //否则,跳出循环
}
}
if(j == sub_len) //如果遍历子串所有内容,父串从(i - 1) + sub_len重新判断
{
i = (i - 1) + sub_len;
count ++; //此时计数自增
}
}
printf("count = %d\n",count); //显示计数,子串在父串中出现的次数
return 0;
}