用c语言输入一个字符串,长度小于等于200,输出按字符顺序升序排序后的字符串。 输入描述:输入只有一行,一个长度小于等于200的字符串。输出描述:输出处理后的结果。示例1: 输入 bacd 输出 abcd
时间: 2024-10-19 08:12:57 浏览: 35
在C语言中,你可以使用数组和标准库函数`scanf`来获取用户输入的字符串,然后通过`qsort`函数配合字符比较函数`strcmp`对字符进行排序。下面是一个简单的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 字符数组比较函数,用于qsort排序
int compare(const void* a, const void* b) {
return strcmp(*(char**)a, *(char**)b);
}
int main() {
char input[201]; // 为了容纳包括空字符在内的字符串
printf("请输入一个长度小于等于200的字符串:");
fgets(input, sizeof(input), stdin); // 获取用户输入,包含换行符
// 移除fgets留下的换行符
size_t len = strlen(input);
if (input[len - 1] == '\n') {
input[len - 1] = '\0'; // 修改最后一个字符
}
// 将字符串转换为字符数组,并进行排序
char* sorted_str = malloc(len + 1); // 分配内存
strncpy(sorted_str, input, len);
sorted_str[len] = '\0';
qsort(sorted_str, len, sizeof(char), compare);
printf("按字符顺序升序排序后的字符串是:%s\n", sorted_str);
free(sorted_str); // 释放内存
return 0;
}
```
运行程序时,按照提示输入字符串,程序会将字符串按字符顺序升序排列并输出。
阅读全文