// 输入一句话,然后把这个字符串以单词为单位,逆转输出。 // 比如将“Alice call Jack”转换为“Jack call Alice”, // 实现速度最快,移动最少。 C++
时间: 2024-09-24 17:10:29 浏览: 41
EDA/PLD中的LabVIEW的字符串输入控件
在C++中,你可以通过内置的`std::reverse`函数结合`std::stringstream`或者直接操作字符数组来实现这个功能。这里是一个简单的示例:
```cpp
#include <iostream>
#include <sstream>
#include <algorithm> // 包含 reverse 函数
std::string reverseWords(const std::string& input) {
std::istringstream iss(input);
std::string word;
std::ostringstream oss;
while (iss >> word) { // 逐词读取输入串
oss << word; // 将每个单词写入新流
if (!iss.peek() || iss.peek() == ' ') { // 当遇到空格或结尾时反转并追加下一个单词
oss << " ";
std::reverse(oss.str().begin(), oss.str().end());
oss.str("");
}
}
// 最后一个单词不需要额外处理,因为循环会自然结束
return oss.str(); // 返回逆转后的单词序列
}
int main() {
std::string sentence = "Alice call Jack";
std::cout << reverseWords(sentence) << std::endl;
return 0;
}
```
运行上述程序,它将以单词为单位逆转字符串,并确保在每个单词之间插入了空格。
阅读全文