在C語言中,可以使用循環和條件判斷來查找字符串中某個子串的出現次數。以下是一個示例代碼:
#include <stdio.h>
#include <string.h>
int countOccurrences(const char *str, const char *subStr) {
int count = 0;
int subStrLen = strlen(subStr);
while (*str) {
if (strncmp(str, subStr, subStrLen) == 0) {
count++;
}
str++;
}
return count;
}
int main() {
char str[100];
char subStr[100];
printf("請輸入一個字符串:");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // 刪除換行符
printf("請輸入要查找的子串:");
fgets(subStr, sizeof(subStr), stdin);
subStr[strcspn(subStr, "\n")] = '\0'; // 刪除換行符
int occurrences = countOccurrences(str, subStr);
printf("子串 \"%s\" 在字符串 \"%s\" 中出現了 %d 次。\n", subStr, str, occurrences);
return 0;
}
在上面的代碼中,countOccurrences
函數用于計算子串在字符串中出現的次數。內部使用了 strncmp
函數來比較字符串,while
循環遍歷整個字符串,每次比較字符串的一部分是否與子串相等,如果相等則計數器加1,然后繼續循環。最后返回計數器的值。
在 main
函數中,首先接收用戶輸入的字符串和子串。然后調用 countOccurrences
函數來計算子串在字符串中出現的次數,并將結果打印出來。
注意:
fgets
函數來讀取用戶輸入的字符串和子串,使用 strcspn
函數刪除輸入字符串中的換行符。