c 语言怎么对中文字符进行拼音排序?ansi GB2312

来源:互联网 发布:淘宝联盟返利是20号到 编辑:程序博客网 时间:2024/04/28 07:01
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



原创粉丝点击