给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。
输出格式:
每个测试用例的输出占一行,输出倒序后的句子。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
#include <stdio.h>
#include <string.h>
void transform(char a[]);
int main() {
char a[100];
gets(a);
int length = strlen(a);
transform(a);
int flag = 1;
for (int cnt = length - 1; cnt >= 0; cnt--) {
if ( a[cnt-1]=='\0' && a[cnt] != '\0' || cnt==0) {
if (flag) {
printf("%s", &a[cnt]);
flag = 0;
}
else printf(" %s",& a[cnt]);
}
}
return 0;
}
void transform(char a[]) {
int length = strlen(a);
for (int cnt = 0; cnt < length; cnt++) {
if (a[cnt] == ' ') {
a[cnt] = '\0';
//printf("* ");
}
}
}
1.本题主要在ransform函数中,要先用变量length将a的长度存取,因为转化完以后,里面都被我分割成了小字符串
2.还要注意,题目虽然给的都是都是大小写区分........然而实际上,还是一个单词一个单词的输出,如abc这样的数据其实也是有的,所以单纯用大写只能通过一些用例,但无法通过所有样例