用c语言输入n个单词,对单词的首字母进行排序
时间: 2024-05-07 21:18:37 浏览: 111
C语言程序设计-将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用’.’结束输入; .c
以下是一个示例代码,使用了标准库函数 `qsort` 进行排序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_WORDS 1000
#define MAX_WORD_LEN 100
int compare(const void *a, const void *b) {
char **pa = (char **)a;
char **pb = (char **)b;
return strcmp(*pa, *pb);
}
int main() {
char words[MAX_WORDS][MAX_WORD_LEN];
int n;
printf("Enter number of words: ");
scanf("%d", &n);
printf("Enter words: ");
for (int i = 0; i < n; i++) {
scanf("%s", words[i]);
}
// Sort words by first letter
qsort(words, n, sizeof(words[0]), compare);
// Print sorted words
printf("Sorted words: ");
for (int i = 0; i < n; i++) {
printf("%s ", words[i]);
}
printf("\n");
return 0;
}
```
该代码首先定义了 `MAX_WORDS` 和 `MAX_WORD_LEN` 常量,分别表示最大单词数和单词最大长度。然后通过 `scanf` 从用户输入中读取单词,并将它们存储在 `words` 数组中。
接下来定义了一个 `compare` 函数,用于比较两个字符串的大小关系。该函数在 `qsort` 中被调用,以实现对单词的首字母进行排序。
最后,使用 `qsort` 对 `words` 数组进行排序,并输出排序后的结果。
需要注意的是,该代码没有对输入的单词进行长度限制,如果用户输入的单词超出了数组上限,将会导致程序出错。在实际应用中,应该对单词长度进行检查,以避免这种情况的发生。
阅读全文