二维字符数组

不适合存储字符串数组

二维字符数组的初始化.PNG

指针数组

更适合存储字符串数组

字符串排序

  1. #include <stdio.h>
  2. #include <string.h>
  3. //按照物理位置进行排序
  4. void SortString(char (*s)[10], int n)
  5. {
  6. //选择排序 or 冒泡排序?
  7. for(int i=0; i<n-1; i++)
  8. for(int j=i+1; j<n; j++)
  9. if(strcmp(s[j],s[i])<0)
  10. {
  11. char temp[10];
  12. strcpy(temp,s[i]);
  13. strcpy(s[i],s[j]);
  14. strcpy(s[j],temp);
  15. }
  16. }
  17. //按照索引进行排序
  18. void PtrSortString(char **p, int n)
  19. {
  20. for(int i=0; i<n-1; i++)
  21. for(int j=i+1; j<n; j++)
  22. if(strcmp(p[j],p[i])<0)
  23. {
  24. char* temp = p[i];
  25. p[i] = p[j];
  26. p[j] = temp;
  27. }
  28. }
  29. int main()
  30. {
  31. char s[5][10] = {"China","Germany","US","Russia","Japan"};
  32. SortString(s,5);
  33. for(int i=0; i<5; i++)
  34. puts(s[i]);
  35. puts("=========================");
  36. char* p[5] = {"China","Germany","US","Russia","Japan"};
  37. PtrSortString(p, 5);
  38. for(int i=0; i<5; i++)
  39. puts(p[i]);
  40. return 0;
  41. }