ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# C 程序:按字典顺序(字典顺序)对元素进行排序 > 原文: [https://www.programiz.com/c-programming/examples/lexicographical-order](https://www.programiz.com/c-programming/examples/lexicographical-order) #### 在此示例中,您将学习按字典顺序(字典顺序)对用户输入的 5 个字符串进行排序。 要理解此示例,您应该了解以下 [C 编程](/c-programming "C tutorial")主题: * [C 多维数组](/c-programming/c-multi-dimensional-arrays) * [C 编程字符串](/c-programming/c-strings) * [使用库函数的 C 编程中的字符串操作](/c-programming/string-handling-functions) * * * ## 按字典顺序对字符串排序 ```c #include <stdio.h> #include <string.h> int main() { char str[5][50], temp[50]; printf("Enter 5 words: "); // Getting strings input for (int i = 0; i < 5; ++i) { fgets(str[i], sizeof(str[i]), stdin); } // storing strings in the lexicographical order for (int i = 0; i < 5; ++i) { for (int j = i + 1; j < 5; ++j) { // swapping strings if they are not in the lexicographical order if (strcmp(str[i], str[j]) > 0) { strcpy(temp, str[i]); strcpy(str[i], str[j]); strcpy(str[j], temp); } } } printf("\nIn the lexicographical order: \n"); for (int i = 0; i < 5; ++i) { fputs(str[i], stdout); } return 0; } ``` **输出** ```c Enter 5 words: R programming JavaScript Java C programming C++ programming In the lexicographical order: C programming C++ programming Java JavaScript R programming ``` * * * 为了解决该程序,创建了一个名为`str`的二维字符串。 该字符串最多可包含`5`个字符串,每个字符串最多可包含`50`个字符(包括`null`字符)。 在程序中,我们使用了两个库函数: * [`strcmp()`](https://www.programiz.com/c-programming/library-function/string.h/strcmp) - 比较字符串 * [`strcpy()`](https://www.programiz.com/c-programming/library-function/string.h/strcpy) - 复制字符串 这些函数用于比较字符串并以正确的顺序对其进行排序。