编写一个函数,接收一个字符串,统计其中任意两个及两个以上相邻字符相同的子串的个数。比如字符串"abbcccaddd"子串有"bb"、"cc"、"cc"、"dd"、"dd"、"ccc"和"ddd",共7个。函数原型为:int fun(const char *str);
时间: 2023-07-06 12:20:33 浏览: 88
编写程序,要求统计任意字符串中数字字符,字母和其他字符的个数
4星 · 用户满意度95%
好的,我会编写这个函数。以下是代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int fun(const char *str) {
int len = strlen(str);
int count = 0;
for (int i = 0; i < len - 1; i++) {
int j = i + 1;
while (j < len && str[j] == str[i]) {
j++;
}
if (j - i > 1) {
count += j - i;
}
}
return count;
}
int main() {
char str[] = "abbcccaddd";
int count = fun(str);
cout << count << endl;
return 0;
}
```
函数中,我们先求出字符串的长度,然后遍历字符串中的每一个字符,如果当前字符与下一个字符相等,就继续往后遍历,直到找到一个不相等的字符。如果找到的子串长度大于1,就将其长度加到计数器中。最后返回计数器的值即可。
阅读全文