本實例演示如何計算一個子串在母串中出現的次數(允許重疊)。
採用暴力匹配算法:
T 和子串 P。i(從 0 到 TLen - PLen)。count 加一。// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int i, j, k, TLen, PLen, count = 0;
char T[50], P[10];
printf("請輸入兩個字符串,以回車隔開,母串在前,子串在後:\n");
gets(T);
gets(P);
TLen = strlen(T);
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);
system("pause");
return 0;
}
請輸入兩個字符串,以回車隔開,母串在前,子串在後:
abca
a
2
母串 abca 中子串 a 出現 2 次。
gets() 安全隱患。