思路:
这是个字符串的题,我们利用getline(cin,str);
这个函数按行把整句话都输入进来。然后用str.size()
函数得到整个字符串的长度。
然后扫一遍找到每个空格的位置,之后就可以通过空格的位置把单词一个个倒序输出来。
注意头尾的边界上的细节问题。
PS:也可以直接用EOF判断的形式一个个单词输入,然后直接倒序输出。
代码:
#include<iostream>
#include<string>
using namespace std;
string str;
int space[80];
int len;
int main()
{
int i, j;
getline(cin, str);
len = str.size();
space[0] = 0;
for (i = 0; i < len;i++)
if (str[i] == ' ')
{
space[0]++;
space[space[0]] = i;
}
space[space[0] + 1] = len;
for (i = space[0]; i > 0; i--)
{
for (j = space[i] + 1; j < space[i + 1]; j++)
cout << str[j];
cout << " ";
}
for (j = 0; j < space[1]; j++)
cout << str[j];
//while (1)
//{
//}
return 0;
}