C++语言,创建一个string数组,用于获取5个随机输入字符串,输出5个字符串中包含数字最多的字符串与长度最长的字符串(不考虑出现并列第一的情况)
时间: 2024-09-06 20:04:44 浏览: 57
在C++中,你可以使用`<iostream>`、`<vector>`、`<algorithm>`以及 `<cstdlib>`库来实现这个功能。首先,你需要生成随机字符串,然后将它们添加到`std::vector<std::string>`中,接着找出包含数字最多的字符串和长度最长的字符串。
以下是简单的步骤和代码示例:
```cpp
#include <iostream>
#include <vector>
#include <string>
#include <cstdlib>
#include <ctime>
// 随机生成一个字符
char random_char() {
const std::string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
return chars[rand() % chars.size()];
}
// 生成指定长度的随机字符串
std::string generate_random_string(int length) {
std::string result;
for (int i = 0; i < length; ++i) {
result += random_char();
}
return result;
}
int main() {
// 设置随机数种子以保证每次运行结果一致
srand(time(0));
std::vector<std::string> strings;
for (int i = 0; i < 5; ++i) {
int num_digits = rand() % 5 + 1; // 最少1个,最多5个数字
int string_length = rand() % 20 + 5; // 字符串长度范围在5到24
strings.push_back(generate_random_string(string_length), num_digits);
}
// 初始化两个变量用于存储找到的信息
int max_num_digits = 0;
std::string longest_string;
for (const auto &str : strings) {
if (str.count('0') + str.count('1') + str.count('2') + str.count('3') + str.count('4') + str.count('5')
+ str.count('6') + str.count('7') + str.count('8') + str.count('9') > max_num_digits) {
max_num_digits = str.count('0') + str.count('1') + ...; // 统计数字的数量
longest_string = str;
} else if (str.length() > longest_string.length()) { // 如果数字数量一样,比较长度
longest_string = str;
}
}
std::cout << "包含数字最多的字符串: " << longest_string << ", 数字数量: " << max_num_digits << "\n";
std::cout << "长度最长的字符串: " << longest_string << "\n";
return 0;
}
```
阅读全文