c语言:采用排序算法,根据输入字符数组中的字符的ASCII值对字符串中的进行由小到大排序,并将结果放入字符串中打印出来
时间: 2024-10-18 22:16:07 浏览: 24
C语言中压缩字符串的简单算法小结
在C语言中,可以使用内置的qsort()函数结合冒泡排序、选择排序或快速排序等外部排序算法,来对字符串中的字符按照ASCII值进行排序。这里我将以冒泡排序为例说明:
首先,需要转换字符串到字符数组,因为C语言本身并不支持直接操作字符串内部元素。然后,创建一个比较函数,用于确定两个字符的ASCII值大小。
```c
#include <stdio.h>
#include <string.h>
// 比较函数,用于ASCII值排序
int compare(const void *a, const void *b) {
return (*(char *)a - *(char *)b);
}
void sortString(char str[]) {
int len = strlen(str);
// 将字符串转为字符数组并应用冒泡排序
char temp[len];
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (compare(&str[j], &str[j + 1]) > 0) {
// 交换字符
temp[j] = str[j];
temp[j + 1] = str[j + 1];
// 更新原字符串
str[j] = temp[j];
str[j + 1] = temp[j + 1];
}
}
}
}
// 打印排序后的字符串
void printSortedString(char str[]) {
printf("Sorted string: %s\n", str);
}
int main() {
char input[] = "hello world";
sortString(input);
printSortedString(input);
return 0;
}
```
运行这个程序,会得到一个按ASCII值升序排列的字符串。
阅读全文