示例代码如下:
#include
#include
#include
int cmp(const void *a, const void *b)
{
return strcmp(*(char**)a, *(char**)b);
}
int main()
{
char **words = NULL; // 用于存储字符串的数组
char buffer[100]; // 用于存储每个单词
int num_words = 0; // 单词的数量
int i;
// 读取输入内容,将每个单词存储在字符串数组中
while (scanf("%s", buffer) == 1) {
num_words++;
words = realloc(words, num_words * sizeof(char*));
words[num_words-1] = strdup(buffer); // 动态分配字符串并存储
}
// 对字符串数组进行排序
qsort(words, num_words, sizeof(char*), cmp);
// 输出排好序的字符串数组
for (i = 0; i < num_words; i++) {
printf("%s\n", words[i]);
free(words[i]); // 释放动态分配的字符串
}
free(words); // 释放动态分配的字符串指针数组
return 0;
}