如何获取汉字的首笔画编码

    前阵子做一个项目的电话簿按照首笔画快速查询,先咨询了输入法的兄弟,说没有这样的接口(输入一个汉字,获取首笔画的编码。后来又说有这个接口,只是一直没有遇到这样的需求)。反正不管了,我就自己在网上找了一个比较全的汉字编码集合,并按照我自己的需求,用VC写了一个小程序,把这个汉字集合转成我所需要的结构。 如下,有需要的兄弟可以随便看看。

    

// 表unicodeBiHUa[]中的结构类型
typedef struct tagUnicode1BiHua
{
 unsigned short uni;   // 汉字的unicode码
 unsigned char  bh;   // 首笔画数字指示
}Unicode1BiHua;

 

//  首笔画的数字指示与对应的unicode码

// 1表示“横”;2表示“竖”;3表示“撇”;4表示“捺”;5表示“折”
typedef struct tagBiHua2UniInd
{
 unsigned char  ind;
 unsigned short uni;
}BiHua2UniInd;

const BiHua2UniInd BiHua2Uni[] =
{
 {1, 0x4e00},
 {2, 0x4e28},
 {3, 0x4e3f},
 {4, 0x4e36},
 {5, 0x4e59}
};

 

 

// 包含了2W多个汉字的编码

const Unicode1BiHua unicodeBiHUa[] =
{
 {0x4e00,1},{0x4e01,1},{0x4e02,1},{0x4e03,1},{0x4e04,2},
 {0x4e05,1},{0x4e06,1},{0x4e07,1},{0x4e08,1},{0x4e09,1},

 字符有限制,发不了这么多的字符。NND

 {0x9f9a,1},{0x9f9b,3},{0x9f9c,3},{0x9f9d,3},{0x9f9e,4},
 {0x9f9f,3},{0x9fa0,3},{0x9fa1,3},{0x9fa2,3},{0x9fa3,3},
 {0x9fa4,3},{0x9fa5,3}
};


 

// 接口函数

// 入口参数:hanzi--待查找汉字的unicode

// 返回:该汉字的首笔画unicode码
unsigned short UnicodeGet1BihuaCode(unsigned short hanzi)
{
 char ind = 0;
 unsigned short low, high, mid;

 low = 1;
 high = 20902;
 while (low <= high)
 {
  mid = (low + high) / 2;
  if (unicodeBiHUa[mid - 1].uni == hanzi)
  {
   ind = unicodeBiHUa[mid - 1].bh;
   break;
  }
  else if (unicodeBiHUa[mid - 1].uni < hanzi)
   low = mid + 1;
  else
   high = mid - 1;  
 }

 if (ind <1 || ind > 5)
  return 0xffff;
 else
  return (BiHua2Uni[ind - 1].uni);
}

 

 OVER!

这是网友海峰多年来收集整理的五笔和笔画编码表,涵盖了UNICODE国际通用字符集规定的全部汉字。 SunWb_MB.xls工作薄中包含7个表,内容分别是GB三重简码表、GBK集、CJK扩展A集、CJK扩展B集、CJK兼容与扩充集、特殊符号、海峰五笔词组。每个单字表都有Unicode值、五笔86编码、86容错码、五笔98编码、98容错码、笔顺编号、笔顺容错码等字段,详细描述了该字的编码属性。其中GBK表还描述了该字是否有一、二、三级简码,以及在海峰五笔码表中的优先级(序级——值为1时,表示置于词组之前的常用GB字;值为2时,表示置后的普通GB字;值若为3,则表示置后的非GB字)。笔顺编号即用按照书写的基本笔顺进行的编号——1、2、3、4、5分别表示横、竖、撇、捺、折五种基本笔画。 以上开源码表是《五笔爱好者论坛》上的几十位网友和深圳大学中文系的几十位同学集体合作的结晶,在未经授权的情况下,不得用于任何商业程序中。希望大家善用它,珍惜它、自由地传播它,让更多的朋友从我们的工作中受益!其中CJK-B部分的五笔98版编码笔画校对尚未完成,我们希望有更多的朋友参与编码,保卫我们共同的文字,修复我们共同的家园! 另外,提供了三组不同操作系统下的五笔输入法源码表,附带相应版本的增强式输入法生成器,分别适用于Win9x、Win2000/XP/2003。有兴趣的朋友可自行修改编译,打造完全属于自己的特色输入法。如果懒得自己做,可以到网上下载现成的安装包。海峰五笔官方下载地址是:http://culchina.net/software/SunWb.exe 使用中发现什么问题,请随时与海峰联系,或登录《文化中国》论坛留言: http://culchina.net/bbs 祝各位一码平川、键步如飞,迎来快乐的新一年! 海峰,2005-8-24 转的别人的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七斗星

赏点银子去植发

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值