给定一个只包括字符和空格的句子,将句子中的单词位置反转后输出。输入的句子占一行,各个
时间: 2023-04-05 19:01:46 浏览: 131
单词之间用一个空格隔开,句子长度不超过100个字符。
我的回答是:输入一个只包含字符和空格的句子,可以使用字符串分割函数将句子分割成单词,然后将单词列表反转,最后将反转后的单词列表拼接成一个新的字符串即可。具体实现可以参考以下代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void reverse(char *str) {
int len = strlen(str);
for (int i = 0, j = len - 1; i < j; i++, j--) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
int main() {
char sentence[MAX_LEN];
fgets(sentence, MAX_LEN, stdin);
sentence[strlen(sentence) - 1] = '\0'; // 去掉换行符
char *words[MAX_LEN];
int word_count = 0;
char *token = strtok(sentence, " ");
while (token != NULL) {
words[word_count++] = token;
token = strtok(NULL, " ");
}
for (int i = 0, j = word_count - 1; i < j; i++, j--) {
char *temp = words[i];
words[i] = words[j];
words[j] = temp;
}
for (int i = 0; i < word_count; i++) {
printf("%s ", words[i]);
}
printf("\n");
return 0;
}
```
阅读全文