c语言中用指向指针的指针对5个字符串排序并输出
时间: 2024-02-05 22:12:35 浏览: 80
下面是用指向指针的指针对5个字符串排序并输出的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void sort_strings(char **strings, int n);
int main() {
char str[MAX_LEN];
char *strings[5];
int i;
printf("请输入五个字符串:\n");
for (i = 0; i < 5; i++) {
scanf("%s", str);
strings[i] = (char *)malloc(strlen(str) + 1);
strcpy(strings[i], str);
}
sort_strings(strings, 5);
printf("\n排序后的字符串为:\n");
for (i = 0; i < 5; i++) {
printf("%s\n", strings[i]);
}
for (i = 0; i < 5; i++) {
free(strings[i]);
}
return 0;
}
void sort_strings(char **strings, int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (strcmp(strings[i], strings[j]) > 0) {
temp = strings[i];
strings[i] = strings[j];
strings[j] = temp;
}
}
}
}
```
这段代码中,我们首先定义了一个字符串数组 `strings`,然后使用 `scanf` 函数从标准输入中读入五个字符串,并使用 `malloc` 函数为每个字符串分配内存。接着,我们调用 `sort_strings` 函数对这五个字符串进行排序。最后,我们使用 `printf` 函数输出排序后的字符串,并使用 `free` 函数释放每个字符串的内存。在 `sort_strings` 函数中,我们使用冒泡排序算法对字符串进行排序。这里需要注意的是,我们使用指向指针的指针来操作字符串数组,以便在排序时能够直接交换字符串的指针。
阅读全文