编写一个函数实现字符串中单词的逆序,其他字符保持位置不变 C语言实现
时间: 2023-05-17 18:02:55 浏览: 120
使用C语言实现字符串的逆序实现.docx
可以使用栈来实现字符串中单词的逆序,具体实现如下:
```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;
}
```
这个函数的思路是,遍历字符串中的每个字符,如果是空格,则将栈中的字符依次弹出并输出,然后输出一个空格;如果是非空格字符,则将其压入栈中。最后,将栈中剩余的字符依次弹出并输出即可。
阅读全文