【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 << " "; //控制空格
}
}