c++输入三个字符串,最长20个字符,找出其中最大的字符串,并输出
时间: 2024-05-16 20:18:34 浏览: 124
可以使用数组来存储这三个字符串,然后遍历比较它们的长度,找出最长的字符串,最后输出即可。
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str[3];
for(int i=0; i<3; i++) {
cout << "请输入第" << i+1 << "个字符串:";
cin >> str[i];
}
int maxLen = 0, maxIndex = 0;
for(int i=0; i<3; i++) {
if(str[i].length() > maxLen) {
maxLen = str[i].length();
maxIndex = i;
}
}
cout << "最长的字符串为:" << str[maxIndex] << endl;
return 0;
}
```
运行程序,输入三个字符串:
```
请输入第1个字符串:apple
请输入第2个字符串:banana
请输入第3个字符串:orange
```
输出结果:
```
最长的字符串为:banana
```
相关问题
用c++编写:有一个长度为n的字符串,字符串中仅有可能包含数字“0”和“1”,编写程序求出该字符串中最长回文01子串的长度,输入:输入一行,一个长度为n的字符串,1≤n≤10^3,输出:输出输入字符串中所包含的最长回文01子串的长度
要解决这个问题,我们可以使用动态规划的方法。设计一个二维数组`dp`,其中`dp[i][j]`表示字符串从索引`i`到`j`的子串是否是回文,以及这个子串中"0"和"1"的数量是否相等。对于长度为1的子串,如果是"0"或"1"则直接设置`dp[i][i] = 1`;对于长度为2的子串,只有当两个字符相等且数量相等时才认为是回文。
接着考虑长度大于2的情况,`dp[i][j]`取决于三个条件:
1. 字符串从`i+1`到`j-1`的子串是回文;
2. `s[i]`和`s[j]`相等;
3. "0"和"1"的数量相等。我们可以通过迭代更新`dp`数组。
最后,遍历整个`dp`数组,找出最大的`dp[i][j]`,即为最长回文01子串的长度。
以下是C++代码实现:
```cpp
#include <vector>
using namespace std;
int longestPalindrome01(string s) {
int n = s.length();
vector<vector<bool>> dp(n, vector<bool>(n));
int maxLength = 0;
// 单字符和长度为1的回文处理
for (int i = 0; i < n; ++i) {
if (s[i] == '0') maxLength = 1;
dp[i][i] = true;
}
// 长度为2的回文处理
for (int i = 0; i < n - 1; ++i) {
if (s[i] == s[i + 1]) {
dp[i][i + 1] = true;
maxLength = max(maxLength, 2);
}
}
// 长度大于2的回文处理
for (int len = 3; len <= n; ++len) {
for (int i = 0; i < n - len + 1; ++i) {
int j = i + len - 1;
if (s[i] == s[j] && dp[i + 1][j - 1]) {
dp[i][j] = true;
maxLength = max(maxLength, len);
}
}
}
return maxLength;
}
```
如何使用C++中的选择结构有效地比较并找出三个字符串中的最长者?
在C++中,你可以使用选择结构(如if-else、switch-case等)结合字符串长度的比较来找出三个字符串中的最长者。这里是一个简单的示例:
```cpp
#include <iostream>
#include <string>
std::string longestString(const std::string& str1, const std::string& str2, const std::string& str3) {
int len1 = str1.length();
int len2 = str2.length();
int len3 = str3.length();
if (len1 > len2 && len1 > len3) {
return str1; // 如果str1是最长的
} else if (len2 > len1 && len2 > len3) {
return str2; // 如果str2是最长的
} else {
return str3; // 否则str3是最长的
}
}
int main() {
std::string s1 = "apple";
std::string s2 = "banana";
std::string s3 = "cherry";
std::string longest = longestString(s1, s2, s3);
std::cout << "The longest string is: " << longest << std::endl;
return 0;
}
```
在这个例子中,我们首先计算每个字符串的长度,然后通过一系列条件判断来确定最长的那个。
阅读全文