如何用C语言编写一个函数来计算一个长度为2的子串在一个主字符串中的重复次数?
时间: 2024-11-18 07:17:02 浏览: 8
C语言求两个字符串的最长公共子串
5星 · 资源好评率100%
可以使用C语言编写一个函数来计算一个长度为2的子串在一个主字符串中的重复次数。以下是一个可能的实现方法:
```c
#include <stdio.h>
#include <string.h>
int countSubstring(char *mainString, char *substring) {
int mainStringLength = strlen(mainString);
int substringLength = strlen(substring);
int count = 0;
for (int i = 0; i <= mainStringLength - substringLength; i++) {
if (strncmp(mainString + i, substring, substringLength) == 0) {
count++;
}
}
return count;
}
int main() {
char mainString[] = "Hello, world!";
char substring[] = "world";
int result = countSubstring(mainString, substring);
printf("The substring '%s' appears %d times in the main string '%s'.\n", substring, result, mainString);
return 0;
}
```
这个函数使用`strncmp`函数来比较主字符串和子字符串,如果它们相等,则计数器加一。最后,函数返回计数器的值,即子字符串在主字符串中出现的次数。在主函数中,我们使用一个示例字符串和子字符串调用这个函数,并打印结果。
请注意,这个实现方法假定子字符串只包含小写字母和空格。如果需要处理其他字符集,您可能需要使用更复杂的算法。此外,该实现方法没有考虑重复出现多次的情况,即只计算第一个出现的次数。如果您需要计算所有出现的次数,则需要稍微修改这个函数。
阅读全文