编写一个函数实现字符串中单词的逆序,其他字符保持位置不变
时间: 2023-05-17 12:02:54 浏览: 224
好的,以下是实现字符串中单词逆序的函数代码:
```python
def reverse_words(s):
words = s.split()
return ' '.join(words[::-1])
```
这个函数会将输入的字符串按照空格分割成单词,然后将单词列表逆序,最后再将单词列表拼接成字符串返回。例如,对于输入的字符串 "hello world",函数会返回 "world hello"。
希望这个函数能够帮到你!
相关问题
编写一个函数实现字符串中单词的逆序,其他字符保持位置不变 C语言实现
可以使用栈来实现字符串中单词的逆序,具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100
void reverse_words(char *str) {
int len = strlen(str);
char stack[MAX_LEN];
int top = -1;
int i;
for (i = 0; i < len; i++) {
if (str[i] == ' ') {
while (top >= 0) {
printf("%c", stack[top--]);
}
printf(" ");
} else {
stack[++top] = str[i];
}
}
while (top >= 0) {
printf("%c", stack[top--]);
}
}
int main() {
char str[MAX_LEN];
printf("请输入字符串:");
fgets(str, MAX_LEN, stdin);
reverse_words(str);
return 0;
}
```
这个函数的思路是,遍历字符串中的每个字符,如果是空格,则将栈中的字符依次弹出并输出,然后输出一个空格;如果是非空格字符,则将其压入栈中。最后,将栈中剩余的字符依次弹出并输出即可。
编写一个函数实现字符串中单词的逆序,其他字符保持位置不变.C语言实现
以下是一个 C 语言实现的函数,可以实现字符串中单词的逆序,其他字符保持位置不变:
```c
#include <stdio.h>
#include <string.h>
void reverseWords(char *str)
{
int i, j, len;
char temp;
len = strlen(str);
// 翻转整个字符串
for (i = 0, j = len - 1; i < j; i++, j--)
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
// 翻转每个单词
for (i = 0, j = 0; i < len; i++)
{
if (str[i] == ' ')
{
// 翻转单词
for (int k = j, l = i - 1; k < l; k++, l--)
{
temp = str[k];
str[k] = str[l];
str[l] = temp;
}
j = i + 1;
}
}
// 翻转最后一个单词
for (int k = j, l = len - 1; k < l; k++, l--)
{
temp = str[k];
str[k] = str[l];
str[l] = temp;
}
}
int main()
{
char str[] = "Hello world! This is a test.";
printf("Original string: %s\n", str);
reverseWords(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
输出结果为:
```
Original string: Hello world! This is a test.
Reversed string: olleH dlrow! sihT si a tset.
```
阅读全文