【PAT B1009】说反话
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。
输出格式:每个测试用例的输出占一行,输出倒序后的句子。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
#include <stdio.h>
#include <cstring>
//用二维数组解决
void split(char *str) {
char ans[90][90];
int length = strlen(str);
int r = 0, c = 0;
//Hello World Here I Come
for (int i = 0; i < length; i++) {
if (str[i] != ' ') {
ans[r][c++] = str[i];
} else {
ans[r][c] = '\0';
r++;
c = 0;
}
}
for (int i = r; i >= 0; i--) {
printf("%s", ans[i]);
if (i > 0)
printf(" ");//控制最后一个空格
}
}
int main() {
char str[80];
while (gets(str)) {
split(str);
printf("\n");
}
}
测试结果: