【问题描述】从键盘输入任意一个串,程序将串中所有字符按ASCII值大小从小到大升序放置,最后重新输出排序后的串。用c语言写代码
时间: 2024-12-20 15:28:21 浏览: 13
你可以使用C语言中的字符数组和标准库函数`qsort`来实现这个功能。下面是一个简单的示例,它首先读取字符串,然后利用冒泡排序的方式对字符进行排序,因为`qsort`通常用于整数数组,这里我们假设字符可以直接比较:
```c
#include <stdio.h>
#include <string.h>
// 比较两个字符的ASCII值
int compare(const void* a, const void* b) {
return (*(char*)a - *(char*)b);
}
void sort_string(char* str) {
int len = strlen(str);
char temp;
// 冒泡排序
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - i - 1; j++) {
if (str[j] > str[j + 1]) {
temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}
}
}
int main() {
char input[100]; // 假设最大输入长度不超过99个字符
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 注意去掉字符串末尾的换行符
// 移除fgets的末尾换行符
if (input[strlen(input) - 1] == '\n') {
input[strlen(input) - 1] = '\0';
}
sort_string(input);
printf("排序后的字符串: %s\n", input);
return 0;
}
```
阅读全文