c++字符串反转小C很喜欢倒着写单词,现在给你一行小C写的文本,你能把每个单词都反转并输出它们吗?代码
时间: 2024-06-03 12:08:44 浏览: 86
#include <iostream>
#include <string>
#include <stack>
using namespace std;
int main() {
string s;
getline(cin, s); // 读入一行字符串
stack<char> st; // 使用栈逆序输出单词
for (int i = 0; i < s.size(); i++) {
if (s[i] != ' ') { // 如果不是空格就入栈
st.push(s[i]);
} else { // 否则弹出栈内元素并输出
while (!st.empty()) {
cout << st.top();
st.pop();
}
cout << " "; // 单词之间加一个空格
}
}
// 输出最后一个单词
while (!st.empty()) {
cout << st.top();
st.pop();
}
cout << endl;
return 0;
}
相关问题
字符串反转 时间限制:C/C++1000MS, 其他语言2000MS 内存限制:C/C++256MB, 其他语言512MB 难度: 简单 描述 小C很喜欢倒着写单词,现在给你一行小C写的文本,你能把每个单词都反转并输出它们吗? 输入描述 输入包含多组测试样例。第一行为一个整数T,代表测试样例的数量,后面跟着T个测试样例。 每个测试样例占一行,包含多个单词。一行最多有1000个字符。 输出描述 对于每一个测试样例,你应该输出转换后的文本。
好的,这是一个字符串反转的问题,我可以用 C++ 代码来解决它,如下所示:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
int T;
cin >> T;
cin.ignore(); // 忽略换行符
while (T--) {
string s;
getline(cin, s); // 读入整行字符串
int start = 0, end = 0;
while (end <= s.length()) {
if (end == s.length() || s[end] == ' ') {
reverse(s.begin() + start, s.begin() + end); // 反转单词
start = end + 1;
}
end++;
}
cout << s << endl; // 输出反转后的字符串
}
return 0;
}
```
这段代码中,我们首先读入测试样例的数量 T,然后进入一个 while 循环,每次读入一行字符串 s,并对其中的每个单词进行反转,最后输出整行字符串。在反转单词时,我们可以使用 C++ 的标准库函数 reverse,也可以手动交换字符的位置。
希望这个代码可以帮到你!
描述 小C很喜欢倒着写单词,现在给你一行小C写的文本,你能把每个单词都反转并输出它们吗? 输入描述 输入包含多组测试样例。第一行为一个整数T,代表测试样例的数量,后面跟着T个测试样例。 每个测试样例占一行,包含多个单词。一行最多有1000个字符。 输出描述 对于每一个测试样例,你应该输出转换后的文本。C++实现
好的,以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
using namespace std;
int main() {
int T;
cin >> T;
getchar(); // 读取 T 后要读取回车符,否则会影响下一次输入
while (T--) {
string line, word;
getline(cin, line); // 读取一行字符串
stringstream ss(line); // 将字符串转换为流
while (ss >> word) { // 每次读取一个单词
reverse(word.begin(), word.end()); // 反转单词
cout << word << " "; // 输出单词并加上空格
}
cout << endl; // 每个测试样例输出完毕后换行
}
return 0;
}
```
代码思路:
1. 先读入一个整数 T,表示测试样例数量。
2. 对于每个测试样例,先读入一行字符串。
3. 将字符串转换为 stringstream 流,然后逐个读取单词。
4. 对于每个单词,使用 `reverse()` 函数将其反转。
5. 输出反转后的单词,并在单词之间加上空格。
6. 每个测试样例输出完毕后换行。
阅读全文