给定一个由若干大写小写字符组成的字符串str,现请你求出str中的最长连续大写子串的长度并输出,若没有则输出0。C++
时间: 2024-02-11 20:07:47 浏览: 141
找出一个字符串的最长子串
5星 · 资源好评率100%
好的,下面是一个C++的解法:
```cpp
#include<iostream>
#include<string>
using namespace std;
int longest_upper_substring(string s) {
int max_len = 0, cur_len = 0;
for(int i = 0; i < s.length(); i++) {
if(isupper(s[i])) {
cur_len++;
max_len = max(max_len, cur_len);
}
else {
cur_len = 0;
}
}
return max_len;
}
int main() {
string s;
cout << "请输入字符串:";
cin >> s;
cout << longest_upper_substring(s) << endl;
return 0;
}
```
这个函数 `longest_upper_substring` 的实现和Python版本的一样,只是语法略有不同。我们使用 `string` 类型表示字符串,遍历字符串中的每个字符,如果当前字符是大写字母,就将当前连续大写子串的长度加1,如果当前字符不是大写字母,就将当前连续大写子串的长度重置为0。对于每个连续大写子串,我们都更新最长连续大写子串的长度,最后返回最长连续大写子串的长度即可。
您可以输入一个字符串测试一下这个函数。
阅读全文