倒序输出字符串中的单词

【PAT B1009】
输入一行字符串,字符串总长度不超过80,由若干个单词和空格组成。
倒序输出其中的单词组成的字符串。

输入样例:

Hello World Here I Come

输出样例

Come I Here World Hello

思路:
先整行读入字符串,然后根据空格分割单词。用一个二维字符数组r[j][k]存放单词的字符串,其中j表示第j个单词,k表示该单词第k个字符。
最后倒序输出单词序列。注意末尾带空格会视为“格式错误”。

代码:

#include <iostream>   
#include <string>
using namespace std;

int main()
{
	string s;
	char r[80][80] = {};    //存放单词的二维数组初始化为空
	getline(cin, s);    //整行字符串读入s
	unsigned int i = 0,j = 0,k = 0;

	for (i = 0; i < s.length(); ++i)
	{
		if (s[i] != ' ')
		{
			r[j][k++] = s[i];    //读入第j个单词的所有字符
		}
		else    //空格标志一个单词结束
		{
			++j;    //准备读下一个单词
			k = 0;    //重置单词字符的指针
		}
	}

	for (i = j; i >= 0; --i)    //倒序输出单词序列
	{
		cout << r[i];
		if (i > 0)
			cout << " ";    //控制空格
	}
}
posted @ 2021-01-16 16:25  MorpheusDong  阅读(479)  评论(0编辑  收藏  举报