2. 编写一个程序,要求用户输入一个字符串,然后使用C++的string类和vector类来存储子字符串。程序应该将输入的字符串分割成子字符串,每个子字符串的长度为3。将这些子字符串存储在vector中。然后,按照逆序输出子字符串。
时间: 2024-03-22 16:36:58 浏览: 20
好的,我可以帮你编写这个程序。以下是代码:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
string input;
vector<string> substrings;
cout << "请输入字符串:";
getline(cin, input);
for (int i = 0; i < input.length() - 2; i += 3) {
substrings.push_back(input.substr(i, 3));
}
for (int i = substrings.size() - 1; i >= 0; i--) {
cout << substrings[i] << " ";
}
return 0;
}
```
首先,我们使用`string`类和`vector`类来定义输入字符串和存储子字符串的容器。然后,我们使用`getline`函数从用户处获取输入字符串。接下来,我们使用一个循环来将字符串分割成长度为3的子字符串,并将它们存储在`vector`中。最后,我们使用另一个循环按逆序输出`vector`中的子字符串。
希望这个程序能够帮到你,如果你有任何疑问,可以随时问我。
相关问题
4. 编写一个程序,要求用户输入一个字符串。使用C++的string类和vector类来存储字符串中的整数。程序应该将输入的字符串分割成整数,并将这些整数存储在vector中。然后,计算并输出vector中所有整数的平均值、最大值和最小值。
好的,我会为您提供一个C++程序来实现这个任务。以下是代码:
```c++
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int main() {
string input;
cout << "请输入一个字符串,其中包含整数:" << endl;
getline(cin, input);
vector<int> nums;
istringstream iss(input);
string token;
while(getline(iss, token, ' ')) {
int num;
try {
num = stoi(token);
nums.push_back(num);
} catch(invalid_argument& e) {
// 如果不是整数,则忽略该项
}
}
int sum = 0;
int max_num = INT_MIN;
int min_num = INT_MAX;
for(int num : nums) {
sum += num;
max_num = max(max_num, num);
min_num = min(min_num, num);
}
double avg = (double)sum / nums.size();
cout << "所有整数的平均值为:" << avg << endl;
cout << "所有整数的最大值为:" << max_num << endl;
cout << "所有整数的最小值为:" << min_num << endl;
return 0;
}
```
在这个程序中,我们使用 `getline()` 函数从标准输入中读取一个字符串。然后,我们使用 `istringstream` 类将该字符串分割成单个数字,并将它们存储在 `vector` 数组中。
接下来,我们使用一个简单的循环来遍历 `vector` 数组中的所有数字,并计算它们的总和、最大值和最小值。最后,我们计算平均值并将所有三个值打印到控制台上。
希望这个程序对您有帮助!
1. 编写一个程序,要求用户输入一段文本,然后使用C++的string类和vector类来存储单词。程序应该将文本分割成单词,并将这些单词存储在vector中。然后,按照字母顺序对单词进行排序,并输出排序后的单词列表。
以下是实现该程序的代码:
```c++
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
string text;
cout << "请输入一段文本:";
getline(cin, text); // 获取一行字符串
vector<string> words; // 存储单词的vector
string::size_type start = 0; // 单词的起始位置
string::size_type end = 0; // 单词的结束位置
while ((start = text.find_first_not_of(" ", end)) != string::npos) {
end = text.find_first_of(" ", start); // 找到单词的结束位置
words.push_back(text.substr(start, end - start)); // 存储单词
}
sort(words.begin(), words.end()); // 按照字母顺序排序
cout << "单词列表:" << endl;
for (int i = 0; i < words.size(); i++) {
cout << words[i] << endl; // 输出排序后的单词列表
}
return 0;
}
```
程序可以接受用户输入一段文本,使用find_first_not_of和find_first_of函数将文本分割成单词,并将这些单词存储在vector中。然后,使用sort函数按照字母顺序对单词进行排序,并输出排序后的单词列表。