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);//输入李强
}
怎么进行拼音排序呢? 展开
#include<stdio.h>
#include<string.h>
{
char a[5],b[5],c[5];
scanf("%s",a);//输入王华
scanf("%s",b);//输入张丽
scanf("%s",c);//输入李强
}
怎么进行拼音排序呢? 展开
展开全部
ansi GB2312里一级汉字是按拼音排序的,其他的汉字按部首/笔划排序
所以能按拼音排序的汉字只有3000多个,直接用strcmp()较就可以了
你提出的这几个字都是一级字库里的字,所以用strcmp()就可以实现按拼音排序
但是如果你用的是Unicode,由于unicode里的汉字按笔划顺序排序,所以没有办法实现按拼音排序。
所以能按拼音排序的汉字只有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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询