给定一个只包括字符和空格的句子,将句子的单词位置反转后输出。输入的句子占一行,各个单词之间以空格分隔
时间: 2023-04-05 19:01:48 浏览: 103
我可以回答这个问题。请看以下代码:
#include <stdio.h>
#include <string.h>
void reverseWords(char *s) {
int len = strlen(s);
int i, j;
// 反转整个句子
for (i = 0, j = len - 1; i < j; i++, j--) {
char temp = s[i];
s[i] = s[j];
s[j] = temp;
}
// 反转每个单词
i = 0;
while (i < len) {
j = i;
while (j < len && s[j] != ' ') {
j++;
}
for (int k = i, l = j - 1; k < l; k++, l--) {
char temp = s[k];
s[k] = s[l];
s[l] = temp;
}
i = j + 1;
}
}
int main() {
char s[1000];
fgets(s, 1000, stdin);
reverseWords(s);
printf("%s", s);
return 0;
}
输入样例:
I love programming
输出样例:
programming love I
阅读全文