回覆列表
  • 1 # lanfengz3

    首先限制這裡說的中文指的是GB2312字符集。

    一般來說,排序時中文字排在ASCII碼的後面。但嚴格說起來這個問題還比較複雜。

    應該說這取決於排序程式。排序程式認為中文字排在ASCII碼的後面,那就是中文字排在ASCII碼的後面。

    目前C/C++常用strcmp一類的函式對字串進行比較排序。中文字排在ASCII碼的後面。

    系統目錄下有個排序程式sort.exe, 中文字排在ASCII碼的後面。

    但不能排除有排序程式把中文字排在前面的。我曾經讀過程式把GB2312定義成short型別。如果按short型別排序,中文字就要排在前面了。

    即使是strcmp和sort.exe, 也有顯著的不同。strcmp把大寫字母排前面,sort.exe則不分大小寫,有點兒像stricmp.

    strcmp把“丐”排在“開”的後面,因為二級漢字的編碼在一級漢字的後面;而sort.exe把“丐”排在“開”的前面,因為按拼音字母順序gai在kai的前面。

  • 中秋節和大豐收的關聯?
  • 睡眠不好會影響幸福感嗎?