c语言.编写一个函数,接收一个字符串,统计其中任意两个及两个以上相邻字符相同的子串的个数
时间: 2023-12-28 11:05:33 浏览: 73
C语言编程-编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数;
5星 · 资源好评率100%
下是一个C语言函数,可以接收一个字符串并统计其中任意两个及两个以上相邻字符相同的子串的个数:
```c
int countSubstr(char* str) {
int count = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
int j = i + 1;
while (j < len && str[j] == str[i]) {
j++;
}
int subLen = j - i;
if (subLen >= 2) {
count += (subLen * (subLen - 1)) / 2;
}
i = j - 1;
}
return count;
}
```
这个函数首先初始化了一个计数器 `count`,然后使用一个循环遍历输入字符串中的每个字符。对于每个字符,它查找与之相同的字符序列,直到找到一个不同的字符或到达字符串的末尾。如果找到的序列长度大于等于2,就将序列中的元素两两配对,得到所有可能的子串,并将其数量加到计数器中。最后返回计数器值。
举个例子,如果输入字符串为 "abccddeeffgg",那么相邻字符相同的子串包括 "cc"、"dd"、"ee"、"ff"、"gg"、"ccdd"、"ddee"、"eeff"、"ffgg"、"ccdd ee"、"ddee ff"、"eeff gg",共计12个,所以函数返回值为12。
阅读全文