【问题描述】
输入一行字符,包含多个单词,单词之间以一个空格进行分隔。编程将这行字符所包含的单词逆序输出,每行输出一个单词。
例如输入:
birds and bees
输出:
bees
and
birds
【输入形式】一行字符串
【输出形式】多个单词
【样例输入】birds and bees
【样例输出】
bees
and
birds
#include<stdio.h>
#include<string.h>
int main() {
char str[1000];
char t;
gets(str);
int i, j, m, n, len;
len = strlen(str);
for (i = 0, j = len - 1; i <= j; i++, j--) { //多加入一个元素'\0'
t=str[i];
str[i]=str[j];
str[j]=t;
}
j = 0;
for (i = 0; i <= len; i++) {
if (str[i] == ' ' || str[i] == '\0') {
for (m = j, n = i - 1; m <= n; m++,n--) {
t = str[m];
str[m] = str[n];
str[n] = t;
}
j = i + 1;
}
}
for (i = 0; i < len; i++) {
if (str[i] == ' ') {
printf("\n");
}
else {
printf("%c",str[i]);
}
}
return 0;
}