给定一个只包括字符和空格的句子,将句子中的单词位置反转后输出。输入的句子占一行,各个单词之间以空格分隔。例如,输入 this is a test,输出 test a is this。
时间: 2024-04-30 21:23:11 浏览: 78
思路:先将整个句子按空格分隔成单词,然后将单词列表反转,最后将单词列表重新合并成字符串输出。
Python代码实现:
```python
sentence = input() # 输入句子
words = sentence.split() # 按空格分隔成单词列表
reversed_words = words[::-1] # 反转单词列表
reversed_sentence = ' '.join(reversed_words) # 合并单词列表成字符串
print(reversed_sentence) # 输出反转后的句子
```
运行示例:
```
输入:this is a test
输出:test a is this
```
相关问题
给定一个只包括字符和空格的句子,将句子中的单词位置反转后输出。输入的句子占一行,各个
单词之间用一个空格隔开,句子长度不超过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;
}
```
给定一个只包括字符和空格的句子,将句子的单词位置反转后输出。输入的句子占一行,各个单词之间以空格分隔
我可以回答这个问题。请看以下代码:
#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
阅读全文