C 구현 - 하위 문자열이 상위 문자열에 나타나는 횟수를 계산합니다(구체적으로).

암호

        아이디어: 각 루프는 하위 문자열 문자를 가져와 상위 문자열 문자와 비교한 다음 뒤로 이동하여 상위 문자열에서 하위 문자열 문자와 동일한 연속 문자 수를 기록합니다. (프로그램은 상세하게 주석을 달았으므로 여기에서 반복하지 않을 것입니다.)

//导入头文件
#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;
}

작업 결과

 

추천

출처blog.csdn.net/m0_54158068/article/details/124372127