c语言.编写一个函数,接收一个字符串,统计其中任意两个及两个以上相邻字符相同的子串的个数
时间: 2023-12-28 10:05:35 浏览: 67
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
#include <string.h>
int count_adjacent_chars(char* s) {
int count = 0;
for (int i = 0; i < strlen(s) - 1; i++) {
if (s[i] == s[i + 1]) {
int j = i + 2;
while (j < strlen(s) && s[j] == s[i]) {
j++;
}
count += (j - i - 1);
}
}
return count;
}
int main() {
char s[] = "aaabbbbccccc";
int count = count_adjacent_chars(s);
printf("%d\n", count); // 输出 9
return 0;
}
```
这个函数的实现与 Python 版本类似,只是语法和细节上有些不同。在 C 语言中,需要使用 `strlen()` 函数获取字符串的长度,而在 Python 中可以直接使用 `len()` 函数。此外,C 语言中的字符串必须以空字符 `\0` 结尾,因此在遍历字符串时需要使用 `strlen(s) - 1` 作为循环终止条件。
你可以调用这个函数,传入一个字符串,比如:
```c
char s[] = "aaabbbbccccc";
int count = count_adjacent_chars(s);
printf("%d\n", count); // 输出 9
```
这里的字符串 `s` 中有 9 个相邻字符相同的子串,所以调用函数返回的结果是 9。
阅读全文