用C语言两种方案打出编写函数对一个字符数组中的字母进行相应的排序,要运用指针和函数,并进行比较
时间: 2023-03-19 08:21:53 浏览: 116
方案一:
可以使用冒泡排序(Bubble Sort)的思路对字符数组中的字母进行排序,具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void sort(char *str, int len) {
int i, j;
char tmp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++) {
if (*(str+j) > *(str+j+1)) {
tmp = *(str+j);
*(str+j) = *(str+j+1);
*(str+j+1) = tmp;
}
}
}
}
int main() {
char str[] = "acdbfe";
int len = strlen(str);
sort(str, len);
printf("%s\n", str);
return 0;
}
```
方案二:
可以使用快速排序(Quick Sort)的思路对字符数组中的字母进行排序,具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void swap(char *a, char *b) {
char tmp = *a;
*a = *b;
*b = tmp;
}
int partition(char *str, int low, int high) {
char pivot = *(str+high);
int i = low - 1;
int j;
for (j = low; j <= high-1; j++) {
if (*(str+j) < pivot) {
i++;
swap(str+i, str+j);
}
}
swap(str+i+1, str+high);
return i+1;
}
void quicksort(char *str, int low, int high) {
if (low < high) {
int pi = partition(str, low, high);
quicksort(str, low, pi-1);
quicksort(str, pi+1, high);
}
}
int main() {
char str[] = "acdbfe";
int len = strlen(str);
quicksort(str, 0, len-1);
printf("%s\n", str);
return 0;
}
```
以上两种方案都使用了指针和函数,并且进行了字母的比较和排序。
阅读全文