DATE 7

题目:输入父串子串,显示父串中子串的个数

#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;
}

猜你喜欢

转载自blog.csdn.net/bruce_4/article/details/80370105