c语言编写一个函数,接收一个字符串,统计其中任意两个及两个以上相邻宇符相同的子串的个数。
时间: 2023-12-29 20:01:57 浏览: 73
可以使用一个循环遍历字符串,同时使用两个指针,一个指向当前字符,另一个指向前一个字符。每次比较这两个字符是否相等,如果相等,则说明找到了一个相邻的相同字符,计数器加1。如果不相等,则将第二个指针指向当前字符,继续向后遍历。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int count_same_substrings(char *str) {
int count = 0;
int len = strlen(str);
int i, j;
for (i = 1, j = 0; i < len; i++) {
if (str[i] == str[j]) {
count++;
} else {
j = i;
}
}
return count;
}
int main() {
char str[] = "abccdeefgghhii";
int count = count_same_substrings(str);
printf("Count of same substrings: %d\n", count);
return 0;
}
```
输出结果为:
```
Count of same substrings: 4
```
解释:在字符串 "abccdeefgghhii" 中,有4个相邻的相同字符子串,分别是 cc、gg、hh、ii。
阅读全文
相关推荐













