#include <stdio.h>
#include <string.h>
int main()
{
int i, j, k, flag = 0;
char a[500001];
char b[500001];
gets(a);
i = strlen(a);
for (k = 0; k < i; k++){
if (a[k] != ' ')
break;
}
while (i >= k){
for (j = 0; a[i] != '\0' && a[i] != ' '; j++, i--){
b[j] = a[i];
}
j--;
if (flag){
printf(" ");
flag = 0;
}
for (; j >= 0; j--){
printf("%c", b[j]);
flag = 1;
}
i--;
}
return 0;
}
总结
字符串a反向便利,遇到字母就存入b数组。 遇到空格跳出反向打印b。反复循环。