阅读量:0
在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
函数删除输入字符串中的换行符。 - 该代码只能计算子串在字符串中连续出现的次数,如果要计算非连续出现的次数,需要进行修改。