當前位置:成語大全網 - 新華字典 - 在c語言中我想對漢字字符串按拼音進行排序,可以直接利用strcmp函數來進行排序嗎

在c語言中我想對漢字字符串按拼音進行排序,可以直接利用strcmp函數來進行排序嗎

ansi GB2312裏壹級漢字是按拼音排序的,其他的漢字按部首/筆劃排序。所以能按拼音排序的漢字只有3000多個,直接用strcmp()比較就可以了。但是如果用的是Unicode,由於Unicode裏的漢字按筆劃順序排序,所以沒有辦法實現按拼音排序。

代碼如下:

#include<stdio.h>

#include<string.h>

int?main()

{

char?a[5]?=?"王華",?b[5]?=?"張麗",?c[5]?=?"李強";

char?t[5];

if(strcmp(a,?b)?>?0)

{

strcpy(t,?a);

strcpy(a,?b);

strcpy(b,?t);

}

if(strcmp(a,?c)?>?0)

{

strcpy(t,?a);

strcpy(a,?c);

strcpy(c,?t); ?

}

if(strcmp(b,?c)?>?0)

{

strcpy(t,?b);

strcpy(b,?c);

strcpy(c,?t); ?

}

printf("%s\t%s\t%s\n",a,?b,?c);

return?0;

}

擴展資料

C語言 strcmp() 函數用於對兩個字符串進行比較(區分大小寫)。

頭文件:string.h

語法/原型:int strcmp(const char* stri1,const char* str2);

參數 str1 和 str2 是參與比較的兩個字符串。

strcmp() 會根據 ASCII 編碼依次比較 str1 和 str2 的每壹個字符,直到出現不到的字符,或者到達字符串末尾(遇見\0)。

返回值:

如果返回值 < 0,則表示 str1 小於 str2。

如果返回值 > 0,則表示 str2 小於 str1。

如果返回值 = 0,則表示 str1 等於 str2。