C语言用指针实现:输入3个字符串,按由小到大的顺序输出。输入3个字符串(长度均不超过80),以换行分隔。对3个字符串进行升序排序后输出,以换行分隔。
时间: 2024-02-22 15:00:31 浏览: 67
好的,下面是用指针实现的C语言代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 80
void sort_strings(char **strs, int n);
int main() {
char *strs[3];
char buffer[MAX_LEN];
int i;
// 输入3个字符串
for (i = 0; i < 3; i++) {
fgets(buffer, MAX_LEN, stdin);
buffer[strlen(buffer) - 1] = '\0'; // 去掉换行符
strs[i] = (char *) malloc(strlen(buffer) + 1);
strcpy(strs[i], buffer);
}
// 排序
sort_strings(strs, 3);
// 输出
for (i = 0; i < 3; i++) {
printf("%s\n", strs[i]);
free(strs[i]); // 释放内存
}
return 0;
}
// 冒泡排序
void sort_strings(char **strs, int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (strcmp(strs[j], strs[j+1]) > 0) {
temp = strs[j];
strs[j] = strs[j+1];
strs[j+1] = temp;
}
}
}
}
```
代码思路:
1. 定义一个指针数组 `strs`,用于存储输入的3个字符串。
2. 循环输入3个字符串,使用 `fgets` 函数读入字符串,并将其存储到 `strs` 数组中。
3. 调用 `sort_strings` 函数对 `strs` 数组进行排序。
4. 循环输出排序后的字符串,使用 `printf` 函数输出,并使用 `free` 函数释放内存。
5. `sort_strings` 函数使用冒泡排序算法对字符串数组进行排序。
需要注意的是,由于输入的字符串长度不确定,因此需要使用动态内存分配函数 `malloc` 分配存储空间,并在使用完毕后使用 `free` 函数释放内存。
阅读全文