输入三个字符串从小到大排序用指针和函数实现
时间: 2024-02-15 09:04:27 浏览: 81
用指针数组的方法将字符串排序
好的,以下是用指针和函数实现三个字符串从小到大排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
void sort(char **str, int n);
int main() {
char *str[3];
int i;
// 读入三个字符串
printf("请输入三个字符串:\n");
for (i = 0; i < 3; i++) {
str[i] = (char *) malloc(100 * sizeof(char));
scanf("%s", str[i]);
}
// 对字符串进行排序
sort(str, 3);
// 输出排序后的字符串
printf("排序后的字符串为:\n");
for (i = 0; i < 3; i++) {
printf("%s\n", str[i]);
free(str[i]); // 释放内存
}
return 0;
}
// 排序函数
void sort(char **str, int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (strcmp(str[i], str[j]) > 0) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
```
在主函数中,我们先定义了一个字符串指针数组 `str`,然后通过 `malloc` 函数为每个指针分配了一块内存空间,用于存储用户输入的字符串。接着调用排序函数 `sort` 对这三个字符串进行排序,最后输出排序后的结果。注意,在输出结果之前,我们需要先释放每个字符串指针所指向的内存空间。
排序函数 `sort` 中,我们使用了双重循环对字符串数组进行冒泡排序。在比较两个字符串的大小时,我们使用了标准库函数 `strcmp`。如果字符串 `str[i]` 大于字符串 `str[j]`,则交换这两个字符串指针的位置。最终,字符串数组就会按照从小到大的顺序排列。
阅读全文