原文: https://www.programiz.com/c-programming/examples/lexicographical-order

在此示例中,您将学习按字典顺序(字典顺序)对用户输入的 5 个字符串进行排序。

要理解此示例,您应该了解以下 C 编程主题:


按字典顺序对字符串排序

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main() {
  4. char str[5][50], temp[50];
  5. printf("Enter 5 words: ");
  6. // Getting strings input
  7. for (int i = 0; i < 5; ++i) {
  8. fgets(str[i], sizeof(str[i]), stdin);
  9. }
  10. // storing strings in the lexicographical order
  11. for (int i = 0; i < 5; ++i) {
  12. for (int j = i + 1; j < 5; ++j) {
  13. // swapping strings if they are not in the lexicographical order
  14. if (strcmp(str[i], str[j]) > 0) {
  15. strcpy(temp, str[i]);
  16. strcpy(str[i], str[j]);
  17. strcpy(str[j], temp);
  18. }
  19. }
  20. }
  21. printf("\nIn the lexicographical order: \n");
  22. for (int i = 0; i < 5; ++i) {
  23. fputs(str[i], stdout);
  24. }
  25. return 0;
  26. }

输出

  1. Enter 5 words: R programming
  2. JavaScript
  3. Java
  4. C programming
  5. C++ programming
  6. In the lexicographical order:
  7. C programming
  8. C++ programming
  9. Java
  10. JavaScript
  11. R programming

为了解决该程序,创建了一个名为str的二维字符串。 该字符串最多可包含5个字符串,每个字符串最多可包含50个字符(包括null字符)。

在程序中,我们使用了两个库函数:

这些函数用于比较字符串并以正确的顺序对其进行排序。