c语言输入一个字符串,按字符顺序排序输出
时间: 2024-12-20 19:15:49 浏览: 12
在 C 语言中,如果你想对用户输入的字符串进行字符顺序排序并输出,你需要使用到数组或者字符串处理函数,如 `qsort` 和一些临时数组来辅助操作。下面是一个简单的示例,展示了如何将输入字符串转换为字符数组,然后排序后再输出:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 自定义比较函数用于 qsort
int compare(const void *a, const void *b) {
char *str1 = (char *) a;
char *str2 = (char *) b;
return strcmp(str1, str2);
}
void sort_string(char *input) {
// 获取字符串长度
int len = strlen(input);
// 创建临时字符数组,并复制输入字符串
char sorted[len + 1];
strcpy(sorted, input);
// 对临时数组进行排序
qsort(sorted, len, sizeof(char), compare);
// 输出排序后的字符串
printf("Sorted string: %s\n", sorted);
}
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 注意这里要移除fgets的换行符
// 移除末尾的换行符
if (input[strlen(input) - 1] = '\0';
}
sort_string(input);
return 0;
}
```
在这个例子中,`compare` 函数用于`qsort`排序算法,它会根据 ASCII 码值对字符进行比较。`main` 函数获取用户的输入,然后通过`sort_string` 函数进行排序。
阅读全文