单词翻转
题目描述
小明同学写单词的时候喜欢反着写,比如 hello
他会写成 olleh
。给出小明同学写的一个句子,请你将所有的单词复原。
输入格式
共一行,一个字符串表示句子,单词之间以空格分隔。
输出格式
每个单词一行。
样例 #1
样例输入 #1
olleh dlrow
样例输出 #1
hello
world
提示
句子长度不超过 100 100 100,仅包含小写字母和空格,不存在多余的空格。
方法1
解题思路:
这道题目要求我们将句子中每个单词反转后输出。我们可以按照以下步骤进行:
- 读取输入的句子。
- 将句子按空格分割成单词。
- 对于每个单词,将其反转后输出。
C++代码实现:
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
using namespace std;
int main() {
string sentence;
getline(cin, sentence); // 读取句子
stringstream ss(sentence);
string word;
while (ss >> word) {
reverse(word.begin(), word.end()); // 反转单词
cout << word << endl; // 输出反转后的单词
}
return 0;
}
代码解释:
-
我们首先引入了必要的头文件:
iostream
用于输入输出,string
用于处理字符串,sstream
用于字符串流处理,algorithm
用于反转字符串。 -
在
main
函数中,我们定义了一个字符串变量sentence
用于存储输入的句子。 -
我们使用
getline
函数读取一整行的句子,并将其存储在sentence
中。 -
接下来,我们创建一个字符串流对象
ss
,并将sentence
传递给它。这样可以方便地按空格分割句子中的单词。 -
我们定义了一个字符串变量
word
用于存储每个单词。 -
使用
while
循环从字符串流ss
中读取单词,并将每个单词存储在word
中。 -
对于每个读取到的单词,我们使用
reverse
函数将其反转。reverse
函数接受两个迭代器参数,表示要反转的范围。我们传递word.begin()
和word.end()
作为参数,表示反转整个单词。 -
将反转后的单词输出,并换行。
-
重复步骤6-8,直到读取完所有的单词。
通过使用字符串流stringstream
,我们可以方便地将句子按空格分割成单词。然后,对于每个单词,使用reverse
函数将其反转,并输出反转后的单词。
这段代码利用了C++标准库中的字符串处理函数和算法,使得代码简洁明了。通过简单的字符串操作和循环,我们就可以完成单词的反转和输出。
方法2
方法二:使用while(cin)
读取单词
C++代码实现:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string word;
while (cin >> word) {
reverse(word.begin(), word.end()); // 反转单词
cout << word << endl; // 输出反转后的单词
}
return 0;
}
代码解释:
1 . 我们首先引入了必要的头文件:iostream
用于输入输出,string
用于处理字符串,algorithm
用于反转字符串。
2 . 在main
函数中,我们定义了一个字符串变量word
用于存储每个单词。
3 . 使用while(cin >> word)
直接从标准输入读取单词。这个语句的含义是:
cin >> word
表示从标准输入读取一个以空格分隔的单词,并将其存储在word
中。while(cin >> word)
表示只要能够成功读取到单词,就继续执行循环体内的代码。
4 . 在循环体内,我们使用reverse
函数将读取到的单词word
反转。reverse
函数接受两个迭代器参数,表示要反转的范围。我们传递word.begin()
和word.end()
作为参数,表示反转整个单词。
5 . 将反转后的单词输出,并换行。
6 . 重复步骤3-5,直到无法从标准输入读取到更多的单词为止。
通过使用while(cin >> word)
,我们可以直接从标准输入读取单词,而不需要先将整个句子读取到字符串中。每次循环读取一个单词,然后立即对其进行反转并输出。
这种方法更加简洁,不需要使用字符串流或者额外的字符串变量来存储整个句子。通过while
循环和cin
的组合,我们可以逐个处理输入的单词,直到没有更多的单词为止。
这两种方法都可以正确地反转并输出句子中的单词,你可以根据个人喜好选择其中一种方法进行实现。
标签:word,读取,B2122,反转,单词,字符串,句子,翻转 From: https://blog.csdn.net/m0_46192147/article/details/139258759