在主函数中输入8个字符串。用另一函数对它们排序。然后在主函数输出这8个已排好序的字符串。要求用指向指针的指针实现。
时间: 2024-02-26 22:56:51 浏览: 47
C语言程序设计-对长度为8个字符的字符串,将8个字符按降序排列;例如:原来的字符串为CEAedcab,排序后输出为edcbaE
5星 · 资源好评率100%
好的,这是一个C语言编程问题。我可以帮您解答。
以下是C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void sort_strings(char **strings, int n);
int main() {
char *strings[8];
int i;
printf("Please enter 8 strings:\n");
for (i = 0; i < 8; i++) {
// 为每个字符串分配内存
strings[i] = (char *)malloc(MAX_LEN * sizeof(char));
scanf("%s", strings[i]);
}
// 对8个字符串进行排序
sort_strings(strings, 8);
// 输出已排好序的字符串
printf("Sorted strings:\n");
for (i = 0; i < 8; i++) {
printf("%s\n", strings[i]);
}
// 释放分配的内存
for (i = 0; i < 8; i++) {
free(strings[i]);
}
return 0;
}
// 使用插入排序对字符串数组进行排序
void sort_strings(char **strings, int n) {
int i, j;
char *temp;
for (i = 1; i < n; i++) {
temp = strings[i];
j = i - 1;
while (j >= 0 && strcmp(strings[j], temp) > 0) {
strings[j + 1] = strings[j];
j--;
}
strings[j + 1] = temp;
}
}
```
这个程序使用了插入排序算法对8个字符串进行排序,然后通过指向指针的指针将排序后的字符串返回给主函数输出。
阅读全文