用c语言写出代码:输入一个字符串,使用递归函数反转该字符串,输出结果;然后再使用冒泡排序法将该字符串中字符从小到大排序后输出结果
时间: 2024-09-24 16:07:06 浏览: 49
以下是使用 C 语言编写的一个程序,它首先通过递归函数实现字符串反转,然后使用冒泡排序算法对字符串进行排序:
```c
#include <stdio.h>
#include <string.h>
// 递归函数:反转字符串
void reverse(char *str, int start, int end) {
if (start >= end)
return;
char temp = str[start];
str[start] = str[end];
str[end] = temp;
reverse(str, start + 1, end - 1);
}
// 冒泡排序函数:排序字符串中的字符
void bubble_sort_string(char *str) {
int len = strlen(str);
for(int i = 0; i < len - 1; i++) {
for(int j = 0; j < len - 1 - i; j++) {
if(str[j] > str[j+1]) {
char temp = str[j];
str[j] = str[j+1];
str[j+1] = temp;
}
}
}
}
int main() {
char input[100];
printf("请输入一个字符串:");
fgets(input, sizeof(input), stdin); // 防止换行符影响
input[strcspn(input, "\n")] = '\0'; // 去除fgets获取的换行符
// 反转字符串并输出
char reversed[100];
strcpy(reversed, input);
reverse(reversed, 0, strlen(reversed) - 1);
printf("反转后的字符串: %s\n", reversed);
// 对反转后的字符串进行冒泡排序
bubble_sort_string(reversed);
// 输出排序后的字符串
printf("排序后的字符串: %s\n", reversed);
return 0;
}
```
在这个程序中,`reverse` 函数实现了字符串的递归反转,而 `bubble_sort_string` 则用于对字符串中的字符进行冒泡排序。在主函数中,我们先获取用户输入的字符串,然后分别进行反转和排序,并打印出结果。
阅读全文