输入三个字符串,按从小到大顺序输使用c语言
时间: 2024-11-13 11:41:26 浏览: 20
在C语言中,如果你想将三个字符串按照字典序(即字母顺序)从小到大排序,你可以使用标准库函数`strcmp()`来比较字符串。下面是一个简单的示例程序,它定义了一个结构体存放字符串和相应的索引,并使用冒泡排序算法对它们进行排序:
```c
#include <stdio.h>
#include <string.h>
// 定义结构体来存储字符串及其索引
typedef struct {
char* str;
int index;
} StrWithIndex;
// 比较两个字符串并返回升序结果
int compare_strings(const void* a, const void* b) {
StrWithIndex* sa = (StrWithIndex*)a;
StrWithIndex* sb = (StrWithIndex*)b;
return strcmp(sa->str, sb->str);
}
void sort_strings(char** strings, int length) {
// 创建StrWithIndex数组
StrWithIndex arr[length];
for (int i = 0; i < length; i++) {
arr[i].str = strings[i];
arr[i].index = i;
}
// 使用冒泡排序
qsort(arr, length, sizeof(StrWithIndex), compare_strings);
// 输出排序后的字符串
for (int i = 0; i < length; i++) {
printf("%d. %s\n", arr[i].index, arr[i].str);
}
}
int main() {
char* str1 = "banana";
char* str2 = "apple";
char* str3 = "cherry";
sort_strings(&str1, 3);
return 0;
}
```
在这个例子中,`compare_strings` 函数用于比较字符串,`sort_strings` 函数则负责排序。注意,这个程序假设输入的字符串都是有效的。
阅读全文