字符串中子串出现的次数

/*字符串中子串出现的次数*/
#include<stdio.h>
#include<stdlib.h> 
#include<string.h>
#define N 100
//函数声明 
int number(char *,char *);
void main()
{
	char *s;
	char *son;
	int num;
	s=(char *)malloc(sizeof(char)*N);
	son=(char *)malloc(sizeof(char)*N);
	printf("请输入字符串:\n");
	gets(s);
	printf("请输入子串:\n");
	gets(son);
	while(strlen(son)>strlen(s))
	{
		system("cls");
		printf("输入错误!请重新输入!\n");
		printf("请输入字符串:\n");
		gets(s);
		printf("请输入子串:\n");
		gets(son);
		if(strlen(son)<=strlen(s))
		{
			break;
		}
	}
	num=number(s,son);
	printf("字符串中子串出现的次数为:%d\n",num);	
} 
int number(char *s,char *son)
{	
	int s_length=strlen(s);
	int son_length=strlen(son);
	int i,j,k;
	int num=0;
	for(i=0;s[i]!='\0';i++)
	{
		if(strncmp(s+i,son,son_length)==0)
		{
			num++;	
		}	
		if(i==s_length)
		{
			printf("%s不是%s的子串\n",son,s);
		}
	} 
	if(num!=0)
	{
		return num;	
	}
} 

运行结果:
在这里插入图片描述

发布了67 篇原创文章 · 获赞 25 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41104871/article/details/90737560