当前位置:嗨网首页>书籍在线阅读

24-排序指针而非字符串

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

11.6.1 排序指针而非字符串

该程序的巧妙之处在于排序的是指向字符串的指针,而不是字符串本身。我们来分析一下具体怎么做。最初, ptrst[0] 被设置为 input[0]ptrst[1] 被设置为 input[1] ,以此类推。这意味着指针 ptrst[i] 指向数组 input[i] 的首字符。每个 input[i] 都是一个内含81个元素的数组,每个 ptrst[i] 都是一个单独的变量。排序过程把 ptrst 重新排列,并未改变 input 。例如,如果按字母顺序 input[1]intput[0] 前面,程序便交换指向它们的指针(即 ptrst[0] 指向 input[1] 的开始,而 ptrst[1] 指向 input[0] 的开始)。这样做比用 strcpy() 交换两个 input 字符串的内容简单得多,而且还保留了 input 数组中的原始顺序。图11.6从另一个视角演示了这一过程。

68.png

图11.6 排序字符串指针