编一个C函数,子串在主串中出现多少次

来源:互联网 发布:加工中心编程第一步 编辑:程序博客网 时间:2024/04/30 00:10
#include <stdio.h>#include <string.h>int main(){int a=0,b=0,count=0,j=0,i=0;    char ch1[100],ch2[100];printf("Please enter your string:");gets(ch1);printf("Please enter your substring:");gets(ch2);a=strlen(ch1);b=strlen(ch2);for(i=0;i<strlen(ch1)-strlen(ch2);i++){int flag=0;if(ch1[i]==ch2[0]){flag=1;for(j=i;j<i+strlen(ch2);j++){if( ch1[j] != ch2[j-i]){flag=0;break;}}}if(flag==1){count++;}}printf("The number of occurrences of substring in a string is:%d\n",count);    return 0;}

我们知道如果主串中含有这个子串的话,那么这个子串第一个字符在主串中出现的时候,主串至少还有子串长度-1的长度。

首先我们通过终端输入主串和子串,对主串进行遍历,从0开始到长度相减为止,长度相减的值之后不可能在出现主串中含有子串的情况了。

遍历,当我们主串中第i-1个元素与子串第一个元素相同时,对两个字符串同时遍历,如果遍历完了整个子串主串都与之相同,那么就找到了一个子串,

将技术变量自增,跳出这个遍历过程进行下一次的主串遍历,反之直接退出两个字符串的遍历直接进行下一次的遍历,循环此过程得到最终主串中有多少的子串。

阅读全文
0 0
原创粉丝点击