测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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;
}


上一题 下一题