从键盘输入若干个字符串,输入空字符串时表示输入结束,使用选择排序算法对字符串进行从大到小排序
时间: 2023-05-02 19:04:32 浏览: 74
可以使用选择排序算法对字符串进行从大到小的排序。具体实现过程为,遍历字符串中的每个字符,假设当前字符为未排序部分中的最大值,将其与未排序部分的最左侧字符交换位置,然后继续对未排序部分进行遍历,重复上述过程直到所有字符都被排序完成。排序完成后,空字符串将会被排在最后面。
相关问题
c语言从键盘输入一个字符串,用选择法对该字符串中的字符由大到小进行排序并输出结果
下面是一个用选择法对字符串中字符进行排序的C语言程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 定义字符串最大长度
int main() {
char str[MAX_LEN]; // 存储输入的字符串
int len, i, j, temp;
printf("请输入一个字符串:");
fgets(str, MAX_LEN, stdin); // 从键盘输入字符串
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;
}
}
}
printf("排序后的字符串为:%s", str);
return 0;
}
```
这个程序首先定义了一个字符串数组 `str` 来存储输入的字符串,以及一个常量 `MAX_LEN` 来表示字符串的最大长度。然后使用 `fgets()` 函数从键盘输入字符串,并使用 `strlen()` 函数获取字符串长度。
接着使用选择排序算法对字符串中的字符进行排序,最后输出排序结果。
需要注意的是,在使用 `fgets()` 函数输入字符串时,会把回车符 `\n` 也读入到字符串中。因此在输出排序后的字符串时,需要用 `%s` 格式字符串来忽略掉回车符。
从键盘输入3个字符串,按由小到大排序(使用strcmp函数)C语言
好的,这里是使用 `strcmp` 函数实现字符串排序的C语言代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 假设最大字符串长度为100
int main() {
char str[3][MAX_LEN]; // 存储3个字符串的数组
int i, j;
char temp[MAX_LEN]; // 用于交换的临时字符串
// 从键盘输入3个字符串
printf("请输入3个字符串:\n");
for (i = 0; i < 3; i++) {
scanf("%s", str[i]);
}
// 使用选择排序算法,按由小到大排序
for (i = 0; i < 2; i++) {
for (j = i + 1; j < 3; j++) {
if (strcmp(str[i], str[j]) > 0) {
strcpy(temp, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], temp);
}
}
}
// 输出排序后的字符串
printf("排序后的字符串为:\n");
for (i = 0; i < 3; i++) {
printf("%s\n", str[i]);
}
return 0;
}
```
假设输入的3个字符串分别为:
```
hello
world
cprogramming
```
则输出为:
```
排序后的字符串为:
cprogramming
hello
world
```
希望能帮到你!