写一段C程序,满足:任意从键盘输入一个字符串,将该字符串中的所有字符按从小到大排序后输出
时间: 2024-12-16 21:28:19 浏览: 9
当然可以,下面是一个简单的C程序,它会读取用户输入的字符串,然后对其中的所有字符进行排序并输出:
```c
#include <stdio.h>
#include <string.h>
// 将字符数组转换为整数数组便于排序
void char_to_int(char str[], int arr[]) {
for(int i = 0; str[i] != '\0'; ++i) {
arr[i] = (int)str[i];
}
}
// 冒泡排序函数
void bubble_sort(int arr[], int n) {
for(int i = 0; i < n - 1; ++i) {
for(int j = 0; j < n - i - 1; ++j) {
if(arr[j] > arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 将排序后的整数数组转换回字符数组
void int_to_char(int arr[], char str[]) {
for(int i = 0; i < strlen(str); ++i) {
str[i] = (char)arr[i];
}
}
int main() {
char input[100]; // 存储输入的字符串
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 防止换行符
input[strcspn(input, "\n")] = '\0'; // 去除多余的换行符
int sorted_chars[strlen(input)]; // 存放排序后的字符
char_to_int(input, sorted_chars);
bubble_sort(sorted_chars, strlen(input));
int_to_char(sorted_chars, input);
printf("排序后的字符串: %s\n", input);
return 0;
}
```
当你运行这个程序,输入一个字符串,例如"hello world",它将输出"dehllloorw"。
阅读全文