给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。
输出格式:每个测试用例的输出占一行,输出倒序后的句子。
输入样例:Hello World Here I Come输出样例:
Come I Here World Hello
//方式一:这个在Xcode上可以运行,但是放到online judge上面就被判断为数组越界,大神可指教一下;
#include <stdio.h>
int main() {
int sign = 0;
char *p[10];
char *str;
gets(str);
p[sign] = &str[0];
while (*str) {
if (*str == ' ') {
p[++sign] = ++str;
}else{
str++;
}
}
for (int i=sign; i>=0; i--) {
while (*p[i] != ' ' && *p[i] != 0) {
printf("%c", *p[i]++);
}
if (i != 0) {
printf(" ");
}
}
return 0;
}
//方式二,在指针和非指针之间切换位置概念,有点乱,不过,这个方式交上去,满分。
#include <stdio.h>
int main() {
int sign[40];
int count = 0;
char str[80];
gets(str);
sign[0] = 0;
int i=0;
while (str[i]) {
if (str[i] == ' ') {
sign[++count] = ++i;
}else{
i++;
}
}
for (int i=count; i>=0; i--) {
while (str[sign[i]] != ' ' && str[sign[i]] != 0) {
printf("%c", str[sign[i]]);
sign[i]++;
}
if (i != 0) {
printf(" ");
}
}
return 0;
}