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;
}
转自百度
各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
http://blog.csdn.net/lvxiangan/article/details/8151670