A24161. 单词翻转
填空题
中等
知识点
题目描述
单词翻转
题目描述
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
输出
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
输入样例
hello world输出样例
olleh dlrow参考答案
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s, w[500];
int wi = 0, b = 0;
getline(cin, s);
for(int i = 0; i <= s.length(); ++i)
{
if(s[i] == ' ' || s[i] == '\0')
{
w[wi++] = s.substr(b, i-b);//截取字符串,从b开始截取i-b个字符
b = i+1;
}
}
for(int i = 0; i < wi; ++i)
{
reverse(w[i].begin(),w[i].end());//将字符串s前后颠倒
cout << w[i] <<' ';
}
return 0;
}答案解析
#include <bits/stdc++.h>
using namespace std;
int main()
{
char s[505];
cin.getline(s, 505);
int b = 0, len = strlen(s);
for(int i = 0; i <= len; ++i)
{
if(s[i] == ' ' || s[i] == '\0')
{
for(int j = i - 1; j >= b; j--)
cout << s[j];
cout << ' ';
b = i + 1;
}
}
return 0;
}
上一题
下一题