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。