用C语言在主函数中输入6个字符串,调用另一个函数对这些字符串进行排序(按照字典顺序从小倒大),然后主函数中输出排序后的字符串。要求用指向字符的指针。
时间: 2024-02-18 21:06:22 浏览: 79
好的,这是一个关于字符串排序的问题。可以使用C语言的qsort函数来进行排序。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM_STRINGS 6
#define MAX_STRING_LENGTH 50
int compare_strings(const void* a, const void* b) {
return strcmp(*(const char**)a, *(const char**)b);
}
int main() {
char* strings[NUM_STRINGS];
int i;
// 输入6个字符串
for (i = 0; i < NUM_STRINGS; i++) {
strings[i] = (char*)malloc(MAX_STRING_LENGTH * sizeof(char));
scanf("%s", strings[i]);
}
// 排序
qsort(strings, NUM_STRINGS, sizeof(char*), compare_strings);
// 输出排序后的字符串
for (i = 0; i < NUM_STRINGS; i++) {
printf("%s\n", strings[i]);
free(strings[i]);
}
return 0;
}
```
在这个代码中,我们首先定义了一个指针数组`strings`,用来存储输入的字符串。然后使用循环和`malloc`函数动态分配内存,读入6个字符串。接着调用`qsort`函数对这6个字符串进行排序,排序函数`compare_strings`中使用了`strcmp`函数进行字符串比较。最后循环输出排序后的字符串,并使用`free`函数释放动态分配的内存。
阅读全文