编写一个函数,接收一个字符串,统计其中任意两个及两个以上相邻字符相同的子串的个数。 C语言
时间: 2023-12-28 21:05:35 浏览: 67
C语言编程-编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数;
5星 · 资源好评率100%
好的,以下是一个 C 语言的实现:
```c
#include <stdio.h>
#include <string.h>
int count_duplicate_substrings(char* s) {
int n = strlen(s);
int count = 0;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (strncmp(s + i, s + i + 1, j - i - 1) == 0) {
count++;
}
}
}
return count;
}
```
这个函数的实现思路和 Python 版本一样,也是枚举所有子串,对于每个子串,判断它是否和它的下一个字符相同,如果相同则计数器加一。这里使用了两层循环和 `strncmp` 函数,时间复杂度是 $O(n^2)$,其中 $n$ 是字符串的长度。
需要注意的是,在 C 语言中,我们需要使用 `strncmp` 函数来比较两个子串是否相同,其中第一个参数是第一个子串的指针,第二个参数是第二个子串的指针,第三个参数是需要比较的字符数。在这里,我们比较的是从第一个子串的下一个字符开始,到第二个子串结束的所有字符。
阅读全文