C语言编写程序,实现从键盘上输入一串字符,让它按照字母表顺序,从小到大或从大到小的顺序排列输出
时间: 2024-03-18 13:39:16 浏览: 119
可以使用C语言的标准库函数`qsort()`来实现快速排序,从而按照字母表顺序进行排序。以下是一个示例程序,可以实现从键盘输入一串字符,按照字母表顺序从小到大的顺序排列输出:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void *a, const void *b) {
return *(char *)a - *(char *)b;
}
int main() {
char str[100];
printf("请输入一串字符:");
fgets(str, 100, stdin);
qsort(str, strlen(str) - 1, sizeof(char), compare);
printf("按字母表顺序从小到大排序后的结果为:%s", str);
return 0;
}
```
如果要实现从大到小的顺序排列,可以将`compare()`函数中的返回值改为`*(char*)b - *(char*)a`。
相关问题
C语言编写程序,实现从键盘上输入一串字符,让它按照字母表顺序,从小到大或从大到小的顺序排列输出
您好,以下是用C语言编写程序实现从键盘上输入一串字符,让它按照字母表顺序,从小到大或从大到小的顺序排列输出的代码:
```c
#include <stdio.h>
#include <string.h>
void ascending_sort(char *str) { // 从小到大排序
int i, j, len;
char temp;
len = strlen(str);
for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; j++) {
if (str[i] > str[j]) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
void descending_sort(char *str) { // 从大到小排序
int i, j, len;
char temp;
len = strlen(str);
for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; j++) {
if (str[i] < str[j]) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
int main() {
char str[100];
int choice;
printf("请输入一串字符:");
scanf("%s", str);
printf("请选择排序方式:\n");
printf("1. 从小到大排序\n");
printf("2. 从大到小排序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
ascending_sort(str);
printf("从小到大排序后的结果为:%s\n", str);
break;
case 2:
descending_sort(str);
printf("从大到小排序后的结果为:%s\n", str);
break;
default:
printf("输入有误,请重新运行程序!\n");
}
return 0;
}
```
您可以将以上代码保存为一个以 .c 为后缀的文件,通过编译器进行编译运行即可。
用C语言编写程序,实现从键盘上输入一串字符,让它按照字母表顺序,从小到大或从大到小的顺序排列输出。
好的,这个问题我可以回答。以下是一个简单的 C 语言程序,可以实现输入一串字符并按字母表顺序排序输出:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, j, n;
printf("请输入一串字符: ");
scanf("%s", str);
n = strlen(str);
// 冒泡排序,从小到大排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (str[j] > str[j + 1]) {
char temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}
}
printf("排序后的字符(从小到大): %s\n", str);
// 冒泡排序,从大到小排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (str[j] < str[j + 1]) {
char temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}
}
printf("排序后的字符(从大到小): %s\n", str);
return 0;
}
```
这个程序首先从键盘上读入一串字符,使用字符串库函数 `strlen()` 获取字符串的长度,然后使用冒泡排序算法来实现排序,并且使用 `printf()` 函数输出排序结果。程序中的第一个冒泡排序算法按照从小到大的顺序排序,第二个冒泡排序算法按照从大到小的顺序排序。
阅读全文
相关推荐














