将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符给我写一段c++
时间: 2024-09-14 14:16:31 浏览: 53
你可以使用C++来实现这个功能,这里提供一个简单的示例。这个程序首先会分割输入的句子成单词,然后将它们逆序存储在一个新的字符串中,并添加空格分隔:
```cpp
#include <iostream>
#include <sstream>
#include <algorithm>
std::string reverseWords(const std::string& input) {
// 使用istringstream将字符串按空格分割成单词
std::istringstream iss(input);
std::string word;
std::vector<std::string> words;
// 分割单词并存入vector
while (iss >> word) {
words.push_back(word);
}
// 逆序整个单词列表
std::reverse(words.begin(), words.end());
// 将逆序的单词重新组合成字符串
std::ostringstream oss;
for (size_t i = 0; i < words.size(); ++i) {
if (i > 0) oss << " ";
oss << words[i];
}
return oss.str();
}
int main() {
std::string sentence;
std::getline(std::cin, sentence); // 从用户输入获取完整的句子
std::string reversedSentence = reverseWords(sentence);
std::cout << reversedSentence << std::endl;
return 0;
}
```
在这个程序中,`reverseWords`函数负责处理字符串反转的工作,它首先使用`istringstream`将输入字符串分割成单词,然后利用`std::reverse`逆序单词列表,最后通过`ostringstream`把这些单词拼接回一个新的字符串,中间用空格隔开。
阅读全文