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

就是按照拼音a-z的顺序排序,例如:#include<stdio.h>#include<string.h>{chara[5],b[5],c[5];scanf("%s",a... 就是按照拼音a-z的顺序排序,例如:

#include<stdio.h>
#include<string.h>
{
char a[5],b[5],c[5];
scanf("%s",a);//输入王华
scanf("%s",b);//输入张丽
scanf("%s",c);//输入李强
}
怎么进行拼音排序呢?
展开
 我来答
478617
推荐于2017-12-16 · TA获得超过875个赞
知道小有建树答主
回答量:725
采纳率:100%
帮助的人:181万
展开全部
ansi GB2312里一级汉字是按拼音排序的,其他的汉字按部首/笔划排序
所以能按拼音排序的汉字只有3000多个,直接用strcmp()较就可以了
你提出的这几个字都是一级字库里的字,所以用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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式