题目
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。
输入样例
Hello World Here I Come
输出样例
Come I Here World Hello
思路
1.先用一个一维数组存储整个英文句子,直接用gets()函数即可。
2.对一维数组进行遍历,遇到空格则把空格之前的单词存入到二维数组里,每遇到一个空格,二维数组就换行存放单词。
3.直到遍历遇到'\n'换行符为止,就结束遍历。然后把二维数组倒序遍历打印出来即可。
代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str1[81];
char str2[100][80];
gets(str1);
int line=0,col=0;
int i,j,k;
for(i=0;i<strlen(str1);i++)
{
if(str1[i]=='\n')
break;
else if(str[i]==' ')
{
str2[j][k]='\0';
j++;
col=0;
line++;
}
else str2[j][k++] = str1[i];
}
str2[j][k]='\0';
for(i=line;i>0;i--)
printf("%s ",str2[i]);
printf("%s",str2[0]);
return 0;
}