C语言编写实现单词排序,要求第一行输入单词个数,换行输入单词,其中单词的复制和排序均需通过函数实现
时间: 2023-08-21 20:07:37 浏览: 98
C语言程序设计-编写函数用选择排序法对数组中的数据进行从小到大的排序;
5星 · 资源好评率100%
下面是一个示例代码,实现了输入单词、复制单词、排序单词的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void copy_str(char *dest, char *src) {
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
}
int cmp_str(const void *a, const void *b) {
return strcmp(*(char**)a, *(char**)b);
}
int main() {
int n;
printf("请输入单词个数:");
scanf("%d", &n);
char **words = malloc(n * sizeof(char*));
for (int i = 0; i < n; i++) {
char word[100];
printf("请输入第 %d 个单词:", i+1);
scanf("%s", word);
words[i] = malloc(strlen(word) + 1);
copy_str(words[i], word);
}
qsort(words, n, sizeof(char*), cmp_str);
printf("排序后的单词为:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", words[i]);
}
for (int i = 0; i < n; i++) {
free(words[i]);
}
free(words);
return 0;
}
```
首先通过 `scanf` 获取输入的单词个数,然后动态分配内存存储这些单词。在输入单词时,使用 `copy_str` 函数将输入的单词复制到动态分配的内存中。最后使用 `qsort` 函数对单词进行排序,排序函数为 `cmp_str`。最后记得释放动态分配的内存。
阅读全文