암호
아이디어: 각 루프는 하위 문자열 문자를 가져와 상위 문자열 문자와 비교한 다음 뒤로 이동하여 상위 문자열에서 하위 문자열 문자와 동일한 연속 문자 수를 기록합니다. (프로그램은 상세하게 주석을 달았으므로 여기에서 반복하지 않을 것입니다.)
//导入头文件
#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;
}
작업 결과