首页 > 编程语言 > 详细

关于C++对汉字拼音的处理(3)

时间:2015-04-06 21:45:14      阅读:397      评论:0      收藏:0      [点我收藏+]

之所以汉字转拼音的博文能出到3,主要是因为没有很完美的C++的解决方案,但是写到了这里可以有一个小结了。

以前的方法都有这种那种弊端,如果出现了无法识别的汉字(简体的)就无法修改处理了,但是下面的这种方法却能够随时修改、添加、删除汉字,这样就可以保证汉字转拼音的正确性了。

另外,对于繁体中文下面的方法并不支持,如果有兴趣的童鞋可以参照下面的方法进行修补完善。

 

首先说下下面的方法的优缺点:

优点:

1.简单易懂,初学者都能一目了然的看明白,不想某些大神写的东西各种位运算或使用第三方库来完成这个小小功能

2.只要一个函数就可以解决汉字转拼音的功能,不想某些大神写的东西各种调用,头都发晕,小功能嘛,没有必要的

缺点:

1.使用了windows本地API,无法直接移植到linux或者unix系统

2.穷举了所有汉字,这种方法显得很笨拙,但是我看过很多转汉字的代码,这种也是一种很通用的做法,类似于映射表的感觉

 

好了,回归正题。来看看我的小杰作把。

 

汉字转拼音就这一个函数搞定。

1 std::string GetPinyinStringEx(const std::string &lhanzi, const opyt loutputtype)

 

具体相关代码。(有点长,可以复制到编辑器里面看)

   1 #include <Windows.h>
   2 #include <iostream>
   3 #include <string>
   4 #include <memory>
   5 
   6 
   7 enum opyt
   8 {
   9     first_pinyin_string,
  10     full_pinyin_string
  11 };
  12 
  13 #define _trans_buffsize 4096
  14 
  15 struct _trans_buff_
  16 {
  17     char *globe_buffer;
  18     wchar_t *globe_bufferw;
  19     _trans_buff_()
  20         :globe_buffer(NULL),
  21         globe_bufferw(NULL)
  22     {
  23         globe_buffer = new char[_trans_buffsize];
  24         if (globe_buffer) memset(globe_buffer, 0, _trans_buffsize*sizeof(char));
  25         globe_bufferw = new wchar_t[_trans_buffsize];
  26         if (globe_bufferw) memset(globe_bufferw, 0, _trans_buffsize*sizeof(wchar_t));
  27     }
  28     ~_trans_buff_()
  29     {
  30         if (globe_buffer) delete[] globe_buffer;
  31         if (globe_bufferw) delete[] globe_bufferw;
  32     }
  33 };
  34 static std::auto_ptr<_trans_buff_> f_trans_buff_(new _trans_buff_);
  35 
  36 typedef struct pyhz_t {
  37     const char *fpy;//first pinyin
  38     const char *py;//full pinyin
  39     const short sd;//pinyin shengdiao
  40     const char *hz;//hanzi
  41 } pyhz_tab;
  42 
  43 const pyhz_tab pyhz_example[] = {
  44     { "A", "A", 1, "阿啊呵腌吖锕" },
  45     { "A", "A", 2, "啊呵嗄" },
  46     { "A", "A", 3, "啊呵" },
  47     { "A", "A", 4, "啊呵" },
  48     { "A", "A", 5, "阿啊呵" },
  49     { "A", "Ai", 1, "哀挨埃唉哎捱锿" },
  50     { "A", "Ai", 2, "呆挨癌皑捱" },
  51     { "A", "Ai", 3, "矮哎蔼霭嗳" },
  52     { "A", "Ai", 4, "爱碍艾唉哎隘暧嗳瑷嗌嫒砹" },
  53     { "A", "An", 1, "安谙鞍氨庵桉鹌广厂" },
  54     { "A", "An", 3, "俺铵揞埯" },
  55     { "A", "An", 4, "案按暗岸黯胺犴" },
  56     { "A", "Ang", 1, "" },
  57     { "A", "Ang", 2, "" },
  58     { "A", "Ang", 4, "" },
  59     { "A", "Ao", 1, "熬凹" },
  60     { "A", "Ao", 2, "熬敖嚣嗷鏖鳌翱獒聱螯廒遨" },
  61     { "A", "Ao", 3, "袄拗媪" },
  62     { "A", "Ao", 4, "奥澳傲懊坳拗骜岙鏊" },
  63     { "B", "Ba", 1, "八吧巴叭芭扒疤笆粑岜捌" },
  64     { "B", "Ba", 2, "八拔跋茇菝魃" },
  65     { "B", "Ba", 3, "把靶钯" },
  66     { "B", "Ba", 4, "把爸罢霸坝耙灞鲅" },
  67     { "B", "Ba", 5, "吧罢" },
  68     { "B", "Bai", 1, "" },
  69     { "B", "Bai", 2, "" },
  70     { "B", "Bai", 3, "百摆伯柏佰捭" },
  71     { "B", "Bai", 4, "败拜呗稗" },
  72     { "B", "Ban", 1, "般班搬斑颁扳瘢癍" },
  73     { "B", "Ban", 3, "版板阪坂钣舨" },
  74     { "B", "Ban", 4, "办半伴扮瓣拌绊" },
  75     { "B", "Bang", 1, "帮邦浜梆" },
  76     { "B", "Bang", 3, "膀榜绑" },
  77     { "B", "Bang", 4, "棒膀傍磅谤镑蚌蒡" },
  78     { "B", "Bao", 1, "包胞炮剥褒苞孢煲龅" },
  79     { "B", "Bao", 2, "薄雹" },
  80     { "B", "Bao", 3, "保宝饱堡葆褓鸨" },
  81     { "B", "Bao", 4, "报暴抱爆鲍曝刨瀑豹趵" },
  82     { "B", "Bei", 1, "背悲杯碑卑陂埤萆鹎" },
  83     { "B", "Bei", 3, "" },
  84     { "B", "Bei", 4, "被备背辈倍贝蓓惫悖狈焙邶钡孛碚褙鐾鞴" },
  85     { "B", "Bei", 5, "臂呗" },
  86     { "B", "Ben", 1, "奔贲锛" },
  87     { "B", "Ben", 3, "本苯畚" },
  88     { "B", "Ben", 4, "奔笨夯坌" },
  89     { "B", "Beng", 1, "崩绷嘣" },
  90     { "B", "Beng", 2, "" },
  91     { "B", "Beng", 3, "" },
  92     { "B", "Beng", 4, "绷蹦迸甏泵蚌" },
  93     { "B", "Bi", 1, "" },
  94     { "B", "Bi", 2, "鼻荸" },
  95     { "B", "Bi", 3, "比笔彼鄙匕俾妣吡秕舭" },
  96     { "B", "Bi", 4, "必毕币秘避闭壁臂弊辟碧拂毙蔽庇璧敝泌陛弼篦婢愎痹铋裨濞髀庳毖滗蓖埤芘嬖荜贲畀萆薜筚箅哔襞跸狴" },
  97     { "B", "Bian", 1, "编边鞭砭煸蝙笾鳊" },
  98     { "B", "Bian", 3, "贬扁匾碥窆褊" },
  99     { "B", "Bian", 4, "便变遍辩辨辫卞苄汴忭弁缏" },
 100     { "B", "Bian", 5, "" },
 101     { "B", "Biao", 1, "标彪勺镖膘骠镳杓飚飑飙瘭髟" },
 102     { "B", "Biao", 3, "表裱婊" },
 103     { "B", "Biao", 4, "" },
 104     { "B", "Bie", 1, "憋瘪鳖" },
 105     { "B", "Bie", 2, "别蹩" },
 106     { "B", "Bie", 3, "" },
 107     { "B", "Bie", 4, "" },
 108     { "B", "Bin", 1, "宾滨彬斌缤濒槟傧玢豳镔" },
 109     { "B", "Bin", 4, "鬓殡摈膑髌" },
 110     { "B", "Bing", 1, "并兵冰槟" },
 111     { "B", "Bing", 3, "饼屏丙柄秉炳禀邴" },
 112     { "B", "Bing", 4, "并病摒" },
 113     { "B", "Bo", 1, "般波播拨剥玻饽菠钵趵" },
 114     { "B", "Bo", 2, "百博伯勃薄泊柏驳魄脖搏膊舶礴帛铂箔渤钹孛亳鹁踣" },
 115     { "B", "Bo", 3, "簸跛" },
 116     { "B", "Bo", 4, "薄柏簸掰擘檗" },
 117     { "B", "Bo", 5, "卜啵" },
 118     { "B", "Bu", 1, "逋晡钸" },
 119     { "B", "Bu", 2, "不醭" },
 120     { "B", "Bu", 3, "补捕堡卜哺卟" },
 121     { "B", "Bu", 4, "不部布步怖簿埔埠瓿钚" },
 122     { "C", "Ca", 1, "擦拆嚓" },
 123     { "C", "Ca", 3, "" },
 124     { "C", "Cai", 1, "" },
 125     { "C", "Cai", 2, "才财材裁" },
 126     { "C", "Cai", 3, "采彩踩睬" },
 127     { "C", "Cai", 4, "采菜蔡" },
 128     { "C", "Can", 1, "参餐骖" },
 129     { "C", "Can", 2, "残惭蚕" },
 130     { "C", "Can", 3, "惨黪" },
 131     { "C", "Can", 4, "惨灿掺璨孱粲" },
 132     { "C", "Cang", 1, "苍仓沧舱伧" },
 133     { "C", "Cang", 2, "" },
 134     { "C", "Cao", 1, "操糙" },
 135     { "C", "Cao", 2, "曹槽嘈漕螬艚" },
 136     { "C", "Cao", 3, "" },
 137     { "C", "Ce", 4, "策测侧厕册恻" },
 138     { "C", "Cen", 1, "" },
 139     { "C", "Cen", 2, "岑涔" },
 140     { "C", "Ceng", 1, "" },
 141     { "C", "Ceng", 2, "曾层" },
 142     { "C", "Ceng", 4, "" },
 143     { "C", "Cha", 1, "差插叉碴喳嚓杈馇锸" },
 144     { "C", "Cha", 2, "查察茶叉茬碴楂猹搽槎檫" },
 145     { "C", "Cha", 3, "叉衩镲" },
 146     { "C", "Cha", 4, "差刹叉诧岔衩杈汊姹" },
 147     { "C", "Chai", 1, "差拆钗" },
 148     { "C", "Chai", 2, "柴豺侪" },
 149     { "C", "Chai", 4, "虿瘥" },
 150     { "C", "Chan", 1, "搀掺觇" },
 151     { "C", "Chan", 2, "单缠禅蝉馋潺蟾婵谗廛孱镡澶躔" },
 152     { "C", "Chan", 3, "产铲阐谄冁蒇骣" },
 153     { "C", "Chan", 4, "颤忏羼" },
 154     { "C", "Chang", 1, "昌娼猖伥阊菖鲳" },
 155     { "C", "Chang", 2, "长场常尝肠偿倘裳嫦徜苌" },
 156     { "C", "Chang", 3, "场厂敞氅昶惝" },
 157     { "C", "Chang", 4, "唱畅倡怅鬯" },
 158     { "C", "Chao", 1, "超抄吵钞绰剿焯怊" },
 159     { "C", "Chao", 2, "朝潮嘲巢晁" },
 160     { "C", "Chao", 3, "炒吵" },
 161     { "C", "Chao", 4, "" },
 162     { "C", "Che", 1, "车砗" },
 163     { "C", "Che", 3, "尺扯" },
 164     { "C", "Che", 4, "彻撤澈掣坼" },
 165     { "C", "Chen", 1, "郴琛嗔抻" },
 166     { "C", "Chen", 2, "陈沉晨沈尘臣辰橙忱谌宸" },
 167     { "C", "Chen", 3, "" },
 168     { "C", "Chen", 4, "称趁衬秤谶榇龀" },
 169     { "C", "Chen", 5, "" },
 170     { "C", "Cheng", 1, "称撑秤瞠噌铛柽蛏" },
 171     { "C", "Cheng", 2, "成城程承诚盛乘呈惩澄橙丞埕枨塍铖裎酲" },
 172     { "C", "Cheng", 3, "逞骋裎" },
 173     { "C", "Cheng", 4, "称秤" },
 174     { "C", "Chi", 1, "吃痴哧嗤蚩笞鸱媸螭眵魑" },
 175     { "C", "Chi", 2, "持迟池驰匙弛踟墀茌篪坻" },
 176     { "C", "Chi", 3, "尺齿耻侈褫豉" },
 177     { "C", "Chi", 4, "赤斥翅啻炽敕叱饬傺彳瘛" },
 178     { "C", "Chong", 1, "冲充涌憧忡艟舂茺" },
 179     { "C", "Chong", 2, "种重崇虫" },
 180     { "C", "Chong", 3, "" },
 181     { "C", "Chong", 4, "冲铳" },
 182     { "C", "Chou", 1, "抽瘳" },
 183     { "C", "Chou", 2, "愁仇筹酬绸踌惆畴稠帱俦雠" },
 184     { "C", "Chou", 3, "丑瞅" },
 185     { "C", "Chou", 4, "" },
 186     { "C", "Chu", 1, "出初樗" },
 187     { "C", "Chu", 2, "除厨躇橱雏锄蜍刍滁蹰" },
 188     { "C", "Chu", 3, "处楚储础杵褚楮" },
 189     { "C", "Chu", 4, "处触畜矗怵搐绌黜亍憷" },
 190     { "C", "Chuai", 1, "揣搋" },
 191     { "C", "Chuai", 3, "" },
 192     { "C", "Chuai", 4, "揣啜踹嘬膪" },
 193     { "C", "Chuan", 1, "穿川巛氚" },
 194     { "C", "Chuan", 2, "传船遄椽舡" },
 195     { "C", "Chuan", 3, "喘舛" },
 196     { "C", "Chuan", 4, "串钏" },
 197     { "C", "Chuang", 1, "创窗疮" },
 198     { "C", "Chuang", 2, "床幢" },
 199     { "C", "Chuang", 3, "" },
 200     { "C", "Chuang", 4, "创怆" },
 201     { "C", "Chui", 1, "吹炊" },
 202     { "C", "Chui", 2, "垂锤捶陲椎槌棰" },
 203     { "C", "Chun", 1, "春椿蝽" },
 204     { "C", "Chun", 2, "纯唇醇淳鹑莼" },
 205     { "C", "Chun", 3, "" },
 206     { "C", "Chuo", 1, "戳踔" },
 207     { "C", "Chuo", 4, "绰啜辍龊" },
 208     { "C", "Ci", 1, "差刺疵呲" },
 209     { "C", "Ci", 2, "词辞慈磁瓷兹茨雌祠茈鹚糍" },
 210     { "C", "Ci", 3, "" },
 211     { "C", "Ci", 4, "次刺赐伺" },
 212     { "C", "Cong", 1, "从匆聪葱囱苁骢璁枞" },
 213     { "C", "Cong", 2, "从丛琮淙" },
 214     { "C", "Cou", 4, "凑楱辏腠" },
 215     { "C", "Cu", 1, "" },
 216     { "C", "Cu", 2, "徂殂" },
 217     { "C", "Cu", 4, "促簇醋卒猝蹴蹙蔟酢" },
 218     { "C", "Cuan", 1, "蹿撺汆镩" },
 219     { "C", "Cuan", 2, "" },
 220     { "C", "Cuan", 4, "窜篡爨" },
 221     { "C", "Cui", 1, "衰催摧崔隹榱" },
 222     { "C", "Cui", 3, "" },
 223     { "C", "Cui", 4, "脆粹萃翠瘁悴淬毳啐" },
 224     { "C", "Cun", 1, "村皴" },
 225     { "C", "Cun", 2, "存蹲" },
 226     { "C", "Cun", 3, "" },
 227     { "C", "Cun", 4, "" },
 228     { "C", "Cuo", 1, "搓撮磋蹉" },
 229     { "C", "Cuo", 2, "嵯矬痤瘥鹾" },
 230     { "C", "Cuo", 3, "撮脞" },
 231     { "C", "Cuo", 4, "错措挫厝锉" },
 232     { "D", "Da", 1, "答搭嗒耷褡哒" },
 233     { "D", "Da", 2, "打达答瘩沓鞑怛笪靼妲" },
 234     { "D", "Da", 3, "" },
 235     { "D", "Da", 4, "" },
 236     { "D", "Da", 5, "塔疸" },
 237     { "D", "Dai", 1, "待呆呔" },
 238     { "D", "Dai", 3, "逮歹傣" },
 239     { "D", "Dai", 4, "大代带待戴袋贷逮殆黛怠玳岱迨骀绐埭甙" },
 240     { "D", "Dan", 1, "单担丹耽眈殚箪儋瘅聃郸" },
 241     { "D", "Dan", 3, "担胆掸赕疸瘅" },
 242     { "D", "Dan", 4, "但担石弹淡旦蛋诞惮啖澹氮萏瘅" },
 243     { "D", "Dang", 1, "当裆铛" },
 244     { "D", "Dang", 3, "党挡谠" },
 245     { "D", "Dang", 4, "当荡档挡宕菪凼砀" },
 246     { "D", "Dao", 1, "刀叨忉氘" },
 247     { "D", "Dao", 2, "" },
 248     { "D", "Dao", 3, "导倒岛蹈捣祷" },
 249     { "D", "Dao", 4, "到道倒悼盗稻焘帱纛" },
 250     { "D", "De", 2, "得德锝" },
 251     { "D", "De", 5, "的地得底" },
 252     { "D", "Dei", 3, "" },
 253     { "D", "Deng", 1, "登灯蹬噔簦" },
 254     { "D", "Deng", 3, "等戥" },
 255     { "D", "Deng", 4, "邓凳瞪澄蹬磴镫嶝" },
 256     { "D", "Di", 1, "提低滴堤嘀氐镝羝" },
 257     { "D", "Di", 2, "的敌迪笛涤嘀狄嫡翟荻籴觌镝" },
 258     { "D", "Di", 3, "底抵诋邸砥坻柢氐骶" },
 259     { "D", "Di", 4, "的地第帝弟递蒂缔谛睇棣娣碲绨" },
 260     { "D", "Dia", 3, "" },
 261     { "D", "Dian", 1, "颠滇掂癫巅" },
 262     { "D", "Dian", 3, "点典碘踮丶" },
 263     { "D", "Dian", 4, "电店甸淀垫殿奠惦佃玷簟坫靛钿癜阽" },
 264     { "D", "Diao", 1, "雕刁凋叼貂碉鲷" },
 265     { "D", "Diao", 3, "" },
 266     { "D", "Diao", 4, "调掉吊钓铫铞" },
 267     { "D", "Die", 1, "爹跌踮" },
 268     { "D", "Die", 2, "叠迭碟谍蝶喋佚牒耋蹀堞瓞揲垤鲽" },
 269     { "D", "Ding", 1, "丁盯钉叮町酊疔仃耵玎" },
 270     { "D", "Ding", 3, "顶鼎酊" },
 271     { "D", "Ding", 4, "定订钉铤腚锭碇啶" },
 272     { "D", "Diu", 1, "丢铥" },
 273     { "D", "Dong", 1, "东冬咚岽氡鸫" },
 274     { "D", "Dong", 3, "懂董硐" },
 275     { "D", "Dong", 4, "动洞冻栋恫侗垌峒胨胴硐" },
 276     { "D", "Dou", 1, "都兜蔸篼" },
 277     { "D", "Dou", 3, "斗抖陡蚪" },
 278     { "D", "Dou", 4, "读斗豆逗窦痘" },
 279     { "D", "Du", 1, "都督嘟" },
 280     { "D", "Du", 2, "读独顿毒渎牍犊黩髑椟" },
 281     { "D", "Du", 3, "肚睹堵赌笃" },
 282     { "D", "Du", 4, "度渡肚杜妒镀芏蠹" },
 283     { "D", "Duan", 1, "" },
 284     { "D", "Duan", 3, "" },
 285     { "D", "Duan", 4, "断段锻缎煅椴簖" },
 286     { "D", "Dui", 1, "" },
 287     { "D", "Dui", 4, "对队兑敦碓憝怼镦" },
 288     { "D", "Dun", 1, "吨敦蹲墩礅镦" },
 289     { "D", "Dun", 3, "盹趸" },
 290     { "D", "Dun", 4, "顿盾钝炖遁沌囤砘" },
 291     { "D", "Duo", 1, "多咄哆掇裰" },
 292     { "D", "Duo", 2, "度夺踱铎" },
 293     { "D", "Duo", 3, "朵躲垛哚缍" },
 294     { "D", "Duo", 4, "舵堕跺剁惰垛驮沲柁" },
 295     { "E", "E", 1, "阿婀屙" },
 296     { "E", "E", 2, "额俄哦鹅娥峨蛾讹莪锇" },
 297     { "E", "E", 3, "" },
 298     { "E", "E", 4, "恶饿扼愕遏噩呃厄鄂轭颚鳄谔锷萼腭垩鹗苊阏" },
 299     { "E", "E", 5, "" },
 300     { "E", "Ei", 2, "" },
 301     { "E", "Ei", 3, "" },
 302     { "E", "Ei", 4, "" },
 303     { "E", "En", 1, "恩蒽" },
 304     { "E", "En", 4, "" },
 305     { "E", "Er", 2, "而儿鸸鲕" },
 306     { "E", "Er", 3, "尔耳迩饵洱珥铒" },
 307     { "E", "Er", 4, "二贰佴" },
 308     { "F", "Fa", 1, "" },
 309     { "F", "Fa", 2, "罚乏伐阀筏垡" },
 310     { "F", "Fa", 3, "法砝" },
 311     { "F", "Fa", 4, "发珐" },
 312     { "F", "Fan", 1, "翻番帆藩幡蕃" },
 313     { "F", "Fan", 2, "凡烦繁泛樊蕃燔矾蘩钒蹯" },
 314     { "F", "Fan", 3, "反返" },
 315     { "F", "Fan", 4, "饭犯范贩泛梵畈" },
 316     { "F", "Fang", 1, "方芳妨坊邡枋钫" },
 317     { "F", "Fang", 2, "房防妨坊肪鲂" },
 318     { "F", "Fang", 3, "访仿纺彷舫" },
 319     { "F", "Fang", 4, "" },
 320     { "F", "Fei", 1, "非飞啡菲扉霏妃绯蜚鲱" },
 321     { "F", "Fei", 2, "肥腓淝" },
 322     { "F", "Fei", 3, "菲匪诽斐蜚翡悱篚榧" },
 323     { "F", "Fei", 4, "费废沸肺吠痱狒镄芾" },
 324     { "F", "Fen", 1, "分纷氛芬吩酚玢" },
 325     { "F", "Fen", 2, "坟焚汾棼鼢" },
 326     { "F", "Fen", 3, "" },
 327     { "F", "Fen", 4, "分份奋愤粪忿偾瀵鲼" },
 328     { "F", "Feng", 1, "风封丰峰疯锋蜂枫烽酆葑沣砜" },
 329     { "F", "Feng", 2, "逢缝冯" },
 330     { "F", "Feng", 3, "讽唪" },
 331     { "F", "Feng", 4, "奉缝凤俸葑" },
 332     { "F", "Fo", 2, "" },
 333     { "F", "Fou", 3, "否缶" },
 334     { "F", "Fu", 1, "夫肤敷孵呋稃麸趺跗" },
 335     { "F", "Fu", 2, "夫服福佛幅伏符浮扶弗拂袱俘芙孚匐辐涪氟桴蜉苻茯莩菔幞怫艴郛绂绋凫祓砩黻罘稃蚨芾蝠" },
 336     { "F", "Fu", 3, "府父腐抚辅甫俯斧脯釜腑拊滏黼" },
 337     { "F", "Fu", 4, "服复父负副富付妇附赴腹覆赋傅缚咐阜讣驸赙馥蝮鲋鳆" },
 338     { "F", "Fu", 5, "" },
 339     { "G", "Ga", 1, "夹咖嘎胳伽旮" },
 340     { "G", "Ga", 2, "嘎噶轧尜钆" },
 341     { "G", "Ga", 3, "嘎尕" },
 342     { "G", "Ga", 4, "" },
 343     { "G", "Gai", 1, "该赅垓陔" },
 344     { "G", "Gai", 3, "" },
 345     { "G", "Gai", 4, "概盖丐钙芥溉戤" },
 346     { "G", "Gan", 1, "干甘肝杆尴乾竿坩苷柑泔矸疳酐" },
 347     { "G", "Gan", 3, "感敢赶杆橄秆擀澉" },
 348     { "G", "Gan", 4, "干赣淦绀旰" },
 349     { "G", "Gang", 1, "刚钢纲缸扛杠冈肛罡" },
 350     { "G", "Gang", 3, "港岗" },
 351     { "G", "Gang", 4, "钢杠戆筻" },
 352     { "G", "Gao", 1, "高糕膏皋羔睾篙槔" },
 353     { "G", "Gao", 3, "稿搞藁槁缟镐杲" },
 354     { "G", "Gao", 4, "告膏诰郜锆" },
 355     { "G", "Ge", 1, "歌格哥戈割胳搁疙咯鸽屹仡圪纥袼" },
 356     { "G", "Ge", 2, "革格隔葛阁胳搁蛤嗝骼颌搿膈镉塥鬲" },
 357     { "G", "Ge", 3, "个各合盖葛哿舸" },
 358     { "G", "Ge", 4, "个各铬硌虼" },
 359     { "G", "Gei", 3, "" },
 360     { "G", "Gen", 1, "根跟" },
 361     { "G", "Gen", 2, "" },
 362     { "G", "Gen", 3, "" },
 363     { "G", "Gen", 4, "亘艮茛" },
 364     { "G", "Geng", 1, "更耕庚羹赓" },
 365     { "G", "Geng", 3, "耿颈梗哽鲠埂绠" },
 366     { "G", "Geng", 4, "" },
 367     { "G", "Gong", 1, "工公共红供功攻宫恭躬龚弓肱蚣觥" },
 368     { "G", "Gong", 3, "巩拱汞珙" },
 369     { "G", "Gong", 4, "共供贡" },
 370     { "G", "Gou", 1, "句沟勾钩篝佝枸缑鞲" },
 371     { "G", "Gou", 3, "狗苟岣枸笱" },
 372     { "G", "Gou", 4, "够购构勾觏垢诟媾遘彀" },
 373     { "G", "Gu", 1, "姑骨孤估辜咕呱箍沽菇轱鸪毂菰蛄酤觚" },
 374     { "G", "Gu", 2, "" },
 375     { "G", "Gu", 3, "古股鼓骨谷贾汩蛊毂鹄牯臌诂瞽罟钴嘏蛄鹘" },
 376     { "G", "Gu", 4, "故顾固估雇锢梏牿崮痼鲴" },
 377     { "G", "Gua", 1, "括瓜刮呱栝胍鸹" },
 378     { "G", "Gua", 3, "寡呱剐" },
 379     { "G", "Gua", 4, "挂褂卦诖" },
 380     { "G", "Guai", 1, "乖掴" },
 381     { "G", "Guai", 3, "" },
 382     { "G", "Guai", 4, "" },
 383     { "G", "Guan", 1, "关观官冠棺矜莞倌纶鳏" },
 384     { "G", "Guan", 3, "管馆莞" },
 385     { "G", "Guan", 4, "观惯冠贯罐灌掼盥涫鹳" },
 386     { "G", "Guang", 1, "光咣胱桄" },
 387     { "G", "Guang", 3, "广犷" },
 388     { "G", "Guang", 4, "逛桄" },
 389     { "G", "Gui", 1, "规归瑰龟硅闺皈傀圭妫鲑" },
 390     { "G", "Gui", 3, "鬼轨诡癸匦庋宄晷簋" },
 391     { "G", "Gui", 4, "贵桂跪柜刽炔刿桧炅鳜" },
 392     { "G", "Gun", 3, "滚鲧衮绲磙辊" },
 393     { "G", "Gun", 4, "" },
 394     { "G", "Guo", 1, "过锅郭涡聒蝈崞埚呙" },
 395     { "G", "Guo", 2, "国帼掴馘虢" },
 396     { "G", "Guo", 3, "果裹猓椁蜾" },
 397     { "G", "Guo", 4, "" },
 398     { "H", "Ha", 1, "哈铪" },
 399     { "H", "Ha", 2, "虾蛤" },
 400     { "H", "Ha", 3, "" },
 401     { "H", "Ha", 4, "" },
 402     { "H", "Hai", 1, "嘿咳嗨" },
 403     { "H", "Hai", 2, "还孩骸" },
 404     { "H", "Hai", 3, "海胲醢" },
 405     { "H", "Hai", 4, "害亥骇氦" },
 406     { "H", "Han", 1, "酣憨顸鼾蚶" },
 407     { "H", "Han", 2, "含寒汗韩涵函晗焓邯邗" },
 408     { "H", "Han", 3, "喊罕阚" },
 409     { "H", "Han", 4, "汉汗憾翰撼旱捍悍瀚焊颔菡撖" },
 410     { "H", "Hang", 1, "" },
 411     { "H", "Hang", 2, "行航吭杭绗珩颃" },
 412     { "H", "Hang", 4, "行巷沆" },
 413     { "H", "Hao", 1, "蒿薅嚆" },
 414     { "H", "Hao", 2, "号毫豪嚎壕貉嗥濠蚝" },
 415     { "H", "Hao", 3, "好郝" },
 416     { "H", "Hao", 4, "好号浩耗皓昊灏镐颢" },
 417     { "H", "He", 1, "喝呵诃嗬" },
 418     { "H", "He", 2, "和何合河核盒禾荷阂涸阖貉曷颌劾菏盍纥蚵翮" },
 419     { "H", "He", 4, "和何喝赫吓贺荷鹤壑褐" },
 420     { "H", "Hei", 1, "黑嘿嗨" },
 421     { "H", "Hen", 2, "" },
 422     { "H", "Hen", 3, "很狠" },
 423     { "H", "Hen", 4, "" },
 424     { "H", "Heng", 1, "哼亨" },
 425     { "H", "Heng", 2, "行横衡恒蘅珩桁" },
 426     { "H", "Heng", 4, "" },
 427     { "H", "Hng", 5, "" },
 428     { "H", "Hong", 1, "轰哄烘薨訇" },
 429     { "H", "Hong", 2, "红洪鸿宏虹弘泓闳蕻黉荭" },
 430     { "H", "Hong", 3, "" },
 431     { "H", "Hong", 4, "哄讧蕻" },
 432     { "H", "Hou", 2, "侯喉猴瘊篌糇骺" },
 433     { "H", "Hou", 3, "" },
 434     { "H", "Hou", 4, "后候後厚侯逅堠鲎" },
 435     { "H", "Hu", 1, "乎呼戏忽糊惚唿滹轷烀" },
 436     { "H", "Hu", 2, "和胡湖糊核壶狐葫弧蝴囫瑚斛鹄醐猢槲鹕觳煳鹘" },
 437     { "H", "Hu", 3, "虎浒唬琥" },
 438     { "H", "Hu", 4, "护户互糊虎沪祜扈戽笏岵怙瓠鹱冱" },
 439     { "H", "Hua", 1, "华化花哗砉" },
 440     { "H", "Hua", 2, "华划滑哗豁猾骅铧" },
 441     { "H", "Hua", 4, "话华化划画桦" },
 442     { "H", "Huai", 2, "怀徊淮槐踝" },
 443     { "H", "Huai", 4, "" },
 444     { "H", "Huai", 5, "" },
 445     { "H", "Huan", 1, "欢獾" },
 446     { "H", "Huan", 2, "还环寰鬟桓圜洹郇缳锾萑" },
 447     { "H", "Huan", 3, "" },
 448     { "H", "Huan", 4, "换患幻唤宦焕痪涣浣奂擐豢漶逭鲩" },
 449     { "H", "Huang", 1, "荒慌肓" },
 450     { "H", "Huang", 2, "黄皇煌惶徨璜簧凰潢蝗蟥遑隍磺癀湟篁鳇" },
 451     { "H", "Huang", 3, "晃恍谎幌" },
 452     { "H", "Huang", 4, "" },
 453     { "H", "Hui", 1, "挥辉灰恢徽堕诙晖麾珲咴虺隳" },
 454     { "H", "Hui", 2, "回徊蛔茴洄" },
 455     { "H", "Hui", 3, "毁悔虺" },
 456     { "H", "Hui", 4, "会汇惠慧溃绘讳贿晦秽诲彗烩荟卉喙恚浍哕缋桧蕙蟪" },
 457     { "H", "Hun", 1, "婚昏荤阍" },
 458     { "H", "Hun", 2, "混魂浑馄珲" },
 459     { "H", "Hun", 4, "混诨溷" },
 460     { "H", "Huo", 1, "豁劐攉锪耠" },
 461     { "H", "Huo", 2, "和活" },
 462     { "H", "Huo", 3, "火伙夥钬" },
 463     { "H", "Huo", 4, "和或获货祸惑霍豁藿嚯镬蠖" },
 464     { "J", "Ji", 1, "其几期机基击奇激积鸡迹绩饥缉圾姬矶肌讥叽稽畸跻羁嵇唧畿齑箕屐剞玑赍犄墼芨丌咭笄乩" },
 465     { "J", "Ji", 2, "革及即辑级极集急籍吉疾嫉藉脊棘汲岌笈瘠诘亟楫蒺殛佶戢嵴蕺" },
 466     { "J", "Ji", 3, "几给己革济纪挤脊戟虮掎麂" },
 467     { "J", "Ji", 4, "记系计济寄际技纪继既齐季寂祭忌剂冀妓骥蓟悸伎暨霁稷偈鲫髻觊荠跽哜鲚洎芰" },
 468     { "J", "Jia", 1, "家加佳夹嘉茄挟枷珈迦伽浃痂笳葭镓袈跏" },
 469     { "J", "Jia", 2, "夹颊戛荚郏恝铗袷蛱" },
 470     { "J", "Jia", 3, "假角脚甲搅贾缴绞饺矫佼狡剿侥皎胛铰挢岬徼湫敫钾嘏瘕" },
 471     { "J", "Jia", 4, "价假架驾嫁稼" },
 472     { "J", "Jia", 5, "" },
 473     { "J", "Jian", 1, "间坚监渐兼艰肩浅尖奸溅煎歼缄笺菅蒹搛湔缣戋犍鹣鲣鞯" },
 474     { "J", "Jian", 3, "简减检剪捡拣俭碱茧柬蹇謇硷睑锏枧戬谫囝裥笕翦趼" },
 475     { "J", "Jian", 4, "见间件建监渐健剑键荐鉴践舰箭贱溅槛谏僭涧饯毽锏楗腱牮踺" },
 476     { "J", "Jiang", 1, "将江疆姜浆僵缰茳礓豇" },
 477     { "J", "Jiang", 3, "讲奖蒋桨耩" },
 478     { "J", "Jiang", 4, "将强降酱浆虹匠犟绛洚糨" },
 479     { "J", "Jiao", 1, "教交焦骄郊胶椒娇浇姣跤蕉礁鲛僬鹪蛟艽茭" },
 480     { "J", "Jiao", 2, "嚼矫峤" },
 481     { "J", "Jiao", 3, "角脚搅缴绞饺矫佼狡剿侥皎挢徼湫敫铰" },
 482     { "J", "Jiao", 4, "教觉校叫较轿嚼窖酵噍峤徼醮" },
 483     { "J", "Jie", 1, "接结节街阶皆揭楷嗟秸疖喈" },
 484     { "J", "Jie", 2, "结节杰捷截洁劫竭睫桔拮孑诘桀碣偈颉讦婕羯鲒" },
 485     { "J", "Jie", 3, "解姐" },
 486     { "J", "Jie", 4, "界解价介借戒届藉诫芥疥蚧骱" },
 487     { "J", "Jie", 5, "家价" },
 488     { "J", "Jin", 1, "今金禁津斤筋巾襟矜衿" },
 489     { "J", "Jin", 3, "尽仅紧谨锦瑾馑卺廑堇槿" },
 490     { "J", "Jin", 4, "进近尽仅禁劲晋浸靳缙烬噤觐荩赆妗" },
 491     { "J", "Jing", 1, "经京精惊睛晶荆兢鲸泾旌茎腈菁粳" },
 492     { "J", "Jing", 3, "警景井颈憬阱儆刭肼" },
 493     { "J", "Jing", 4, "经境竟静敬镜劲竞净径靖痉迳胫弪婧獍靓" },
 494     { "J", "Jiong", 1, "" },
 495     { "J", "Jiong", 3, "窘炯迥炅" },
 496     { "J", "Jiu", 1, "究纠揪鸠赳啾阄鬏" },
 497     { "J", "Jiu", 3, "九酒久韭灸玖" },
 498     { "J", "Jiu", 4, "就旧救疚舅咎臼鹫僦厩桕柩" },
 499     { "J", "Ju", 1, "车据且居俱拘驹鞠锯趄掬疽裾苴椐锔狙琚雎鞫" },
 500     { "J", "Ju", 2, "局菊桔橘锔" },
 501     { "J", "Ju", 3, "举柜矩咀沮踽龃榉莒枸" },
 502     { "J", "Ju", 4, "据句具剧巨聚拒距俱惧沮瞿锯炬趄飓踞遽倨钜犋屦榘窭讵醵苣" },
 503     { "J", "Juan", 1, "捐圈娟鹃涓镌蠲" },
 504     { "J", "Juan", 3, "卷锩" },
 505     { "J", "Juan", 4, "圈卷倦眷隽绢狷桊鄄" },
 506     { "J", "Jue", 1, "嗟撅噘" },
 507     { "J", "Jue", 2, "觉绝决角脚嚼掘诀崛爵抉倔獗厥蹶攫谲矍孓橛噱珏桷劂爝镢蕨觖" },
 508     { "J", "Jue", 3, "" },
 509     { "J", "Jue", 4, "" },
 510     { "J", "Jun", 1, "军均君钧筠龟菌皲麇" },
 511     { "J", "Jun", 4, "俊峻隽菌郡骏竣捃浚" },
 512     { "K", "Ka", 1, "咖喀咔" },
 513     { "K", "Ka", 3, "卡咯咔佧胩" },
 514     { "K", "Kai", 1, "开揩锎" },
 515     { "K", "Kai", 3, "慨凯铠楷恺蒈剀垲锴" },
 516     { "K", "Kai", 4, "" },
 517     { "K", "Kan", 1, "看刊堪勘龛戡" },
 518     { "K", "Kan", 3, "侃砍坎槛阚莰" },
 519     { "K", "Kan", 4, "看嵌瞰阚" },
 520     { "K", "Kang", 1, "康慷糠闶" },
 521     { "K", "Kang", 2, "" },
 522     { "K", "Kang", 4, "抗炕亢伉闶钪" },
 523     { "K", "Kao", 1, "" },
 524     { "K", "Kao", 3, "考烤拷栲" },
 525     { "K", "Kao", 4, "靠铐犒" },
 526     { "K", "Ke", 1, "科颗柯呵棵苛磕坷嗑瞌轲稞疴蝌钶窠颏珂髁" },
 527     { "K", "Ke", 2, "咳壳颏" },
 528     { "K", "Ke", 3, "可渴坷轲岢" },
 529     { "K", "Ke", 4, "可克客刻课恪嗑溘骒缂氪锞蚵" },
 530     { "K", "Ken", 3, "肯恳啃垦龈" },
 531     { "K", "Ken", 4, "" },
 532     { "K", "Keng", 1, "坑吭铿" },
 533     { "K", "Kong", 1, "空倥崆箜" },
 534     { "K", "Kong", 3, "恐孔倥" },
 535     { "K", "Kong", 4, "空控" },
 536     { "K", "Kou", 1, "抠芤眍" },
 537     { "K", "Kou", 3, "" },
 538     { "K", "Kou", 4, "扣寇叩蔻筘" },
 539     { "K", "Ku", 1, "哭枯窟骷刳堀" },
 540     { "K", "Ku", 3, "" },
 541     { "K", "Ku", 4, "库裤酷喾绔" },
 542     { "K", "Kua", 1, "" },
 543     { "K", "Kua", 3, "垮侉" },
 544     { "K", "Kua", 4, "跨挎胯" },
 545     { "K", "Kuai", 3, "" },
 546     { "K", "Kuai", 4, "会快块筷脍哙侩狯浍郐" },
 547     { "K", "Kuan", 1, "宽髋" },
 548     { "K", "Kuan", 3, "" },
 549     { "K", "Kuang", 1, "框筐匡哐诓" },
 550     { "K", "Kuang", 2, "狂诳" },
 551     { "K", "Kuang", 3, "" },
 552     { "K", "Kuang", 4, "况矿框旷眶邝圹纩贶" },
 553     { "K", "Kui", 1, "亏窥盔岿悝" },
 554     { "K", "Kui", 2, "魁睽逵葵奎馗夔喹隗暌揆蝰" },
 555     { "K", "Kui", 3, "傀跬" },
 556     { "K", "Kui", 4, "愧溃馈匮喟聩篑蒉愦" },
 557     { "K", "Kun", 1, "昆坤鲲锟醌琨髡" },
 558     { "K", "Kun", 3, "捆悃阃" },
 559     { "K", "Kun", 4, "" },
 560     { "K", "Kuo", 4, "括适阔扩廓栝蛞" },
 561     { "L", "La", 1, "拉啦喇垃邋" },
 562     { "L", "La", 2, "拉喇旯砬" },
 563     { "L", "La", 3, "拉喇" },
 564     { "L", "La", 4, "落拉辣腊蜡剌瘌" },
 565     { "L", "La", 5, "蓝啦" },
 566     { "L", "Lai", 2, "来莱徕涞崃铼" },
 567     { "L", "Lai", 4, "赖睐癞籁赉濑" },
 568     { "L", "Lan", 2, "兰蓝栏拦篮澜婪岚斓阑褴镧谰" },
 569     { "L", "Lan", 3, "懒览揽榄缆漤罱" },
 570     { "L", "Lan", 4, "烂滥" },
 571     { "L", "Lang", 1, "" },
 572     { "L", "Lang", 2, "狼郎廊琅螂榔锒稂阆" },
 573     { "L", "Lang", 3, "" },
 574     { "L", "Lang", 4, "浪郎莨蒗阆" },
 575     { "L", "Lao", 1, "" },
 576     { "L", "Lao", 2, "劳牢唠崂铹痨醪" },
 577     { "L", "Lao", 3, "老姥佬潦栳铑" },
 578     { "L", "Lao", 4, "落络唠烙酪涝耢" },
 579     { "L", "Le", 1, "" },
 580     { "L", "Le", 4, "乐勒仂叻泐鳓" },
 581     { "L", "Le", 5, "" },
 582     { "L", "Lei", 1, "勒擂" },
 583     { "L", "Lei", 2, "累雷擂羸镭嫘缧檑" },
 584     { "L", "Lei", 3, "累蕾垒磊儡诔耒" },
 585     { "L", "Lei", 4, "类泪累擂肋酹" },
 586     { "L", "Lei", 5, "" },
 587     { "L", "Leng", 1, "" },
 588     { "L", "Leng", 2, "楞棱塄" },
 589     { "L", "Leng", 3, "" },
 590     { "L", "Leng", 4, "" },
 591     { "L", "Li", 1, "" },
 592     { "L", "Li", 2, "离丽黎璃漓狸梨篱犁厘罹藜骊蜊黧缡喱鹂嫠蠡鲡蓠" },
 593     { "L", "Li", 3, "里理李礼哩鲤俚逦娌悝澧锂蠡醴鳢" },
 594     { "L", "Li", 4, "力利立历例丽励厉莉笠粒俐栗隶吏沥雳莅戾俪砺痢郦詈荔枥呖唳猁溧砾栎轹傈坜苈疠疬蛎鬲篥粝跞藓" },
 595     { "L", "Li", 5, "璃哩" },
 596     { "L", "Lia", 3, "" },
 597     { "L", "Lian", 2, "联连怜莲廉帘涟镰裢濂臁奁蠊鲢" },
 598     { "L", "Lian", 3, "脸敛琏蔹裣" },
 599     { "L", "Lian", 4, "练恋炼链殓楝潋" },
 600     { "L", "Liang", 2, "量良梁凉粮粱踉莨椋墚" },
 601     { "L", "Liang", 3, "两俩魉" },
 602     { "L", "Liang", 4, "量亮辆凉谅晾踉靓" },
 603     { "L", "Liao", 1, "撩撂" },
 604     { "L", "Liao", 2, "聊疗辽僚寥撩撂缭寮燎嘹獠鹩" },
 605     { "L", "Liao", 3, "了潦燎蓼钌" },
 606     { "L", "Liao", 4, "了料廖镣撩撂尥钌" },
 607     { "L", "Lie", 1, "" },
 608     { "L", "Lie", 3, "裂咧" },
 609     { "L", "Lie", 4, "列烈裂劣猎趔冽洌捩埒躐鬣" },
 610     { "L", "Lie", 5, "" },
 611     { "L", "Lin", 2, "林临秘邻琳淋霖麟鳞磷嶙辚粼遴啉瞵" },
 612     { "L", "Lin", 3, "凛懔檩廪" },
 613     { "L", "Lin", 4, "淋吝躏赁蔺膦" },
 614     { "L", "Ling", 1, "" },
 615     { "L", "Ling", 2, "令灵零龄凌玲铃陵伶聆囹棱菱苓翎棂瓴绫酃泠羚蛉柃鲮" },
 616     { "L", "Ling", 3, "领令岭" },
 617     { "L", "Ling", 4, "令另呤" },
 618     { "L", "Liu", 1, "溜熘" },
 619     { "L", "Liu", 2, "留流刘瘤榴浏硫琉遛馏镏旒骝鎏" },
 620     { "L", "Liu", 3, "柳绺锍" },
 621     { "L", "Liu", 4, "六陆溜碌遛馏镏鹨" },
 622     { "L", "Lo", 5, "" },
 623     { "L", "Long", 1, "" },
 624     { "L", "Long", 2, "龙隆笼胧咙聋珑窿茏栊泷砻癃" },
 625     { "L", "Long", 3, "笼拢垄陇垅" },
 626     { "L", "Long", 4, "" },
 627     { "L", "Lou", 1, "" },
 628     { "L", "Lou", 2, "楼喽偻娄髅蝼蒌耧" },
 629     { "L", "Lou", 3, "搂篓嵝" },
 630     { "L", "Lou", 4, "露陋漏镂瘘" },
 631     { "L", "Lou", 5, "" },
 632     { "L", "Lu", 1, "噜撸" },
 633     { "L", "Lu", 2, "卢炉庐芦颅泸轳鲈垆胪鸬舻栌" },
 634     { "L", "Lu", 3, "鲁芦卤虏掳橹镥" },
 635     { "L", "Lu", 4, "六路陆录露绿鹿碌禄辘麓赂漉戮簏鹭潞璐辂渌蓼逯" },
 636     { "L", "Lu", 5, "轳氇" },
 637     { "L", "Lv", 3, "旅履屡侣缕吕捋铝偻褛膂稆" },
 638     { "L", "Lv", 4, "律绿率虑滤氯" },
 639     { "L", "Lv", 5, "驴榈闾" },
 640     { "L", "Luan", 2, "峦挛孪栾銮滦鸾娈脔" },
 641     { "L", "Luan", 3, "" },
 642     { "L", "Luan", 4, "" },
 643     { "L", "Lue", 3, "" },
 644     { "L", "Lue", 4, "略掠锊" },
 645     { "L", "Lun", 1, "" },
 646     { "L", "Lun", 2, "论轮伦沦仑抡囵纶" },
 647     { "L", "Lun", 4, "" },
 648     { "L", "Luo", 1, "落罗捋" },
 649     { "L", "Luo", 2, "罗逻萝螺锣箩骡猡椤脶镙" },
 650     { "L", "Luo", 3, "裸倮蠃瘰" },
 651     { "L", "Luo", 4, "落络洛骆咯摞烙珞泺漯荦硌雒" },
 652     { "L", "Luo", 5, "" },
 653     { "M", "M", 2, "" },
 654     { "M", "Ma", 1, "妈麻摩抹蚂嬷" },
 655     { "M", "Ma", 2, "吗麻蟆" },
 656     { "M", "Ma", 3, "马吗码玛蚂犸" },
 657     { "M", "Ma", 4, "骂蚂唛杩" },
 658     { "M", "Ma", 5, "么吗嘛" },
 659     { "M", "Mai", 2, "埋霾" },
 660     { "M", "Mai", 3, "买荬" },
 661     { "M", "Mai", 4, "卖麦迈脉劢" },
 662     { "M", "Man", 1, "" },
 663     { "M", "Man", 2, "埋蛮馒瞒蔓谩鳗鞔" },
 664     { "M", "Man", 3, "满螨" },
 665     { "M", "Man", 4, "慢漫曼蔓谩墁幔缦熳镘" },
 666     { "M", "Mang", 2, "忙茫盲芒氓邙硭" },
 667     { "M", "Mang", 3, "莽蟒漭" },
 668     { "M", "Mao", 1, "" },
 669     { "M", "Mao", 2, "毛猫矛茅髦锚牦旄蝥蟊茆" },
 670     { "M", "Mao", 3, "卯铆峁泖昴" },
 671     { "M", "Mao", 4, "冒贸帽貌茂耄瑁懋袤瞀" },
 672     { "M", "Me", 5, "么麽" },
 673     { "M", "Mei", 2, "没眉梅媒枚煤霉玫糜酶莓嵋湄楣猸镅鹛" },
 674     { "M", "Mei", 3, "美每镁浼" },
 675     { "M", "Mei", 4, "妹魅昧谜媚寐袂" },
 676     { "M", "Men", 1, "" },
 677     { "M", "Men", 2, "门扪钔" },
 678     { "M", "Men", 4, "闷懑焖" },
 679     { "M", "Men", 5, "" },
 680     { "M", "Meng", 1, "" },
 681     { "M", "Meng", 2, "蒙盟朦氓萌檬瞢甍礞虻艨" },
 682     { "M", "Meng", 3, "蒙猛勐懵蠓蜢锰艋" },
 683     { "M", "Meng", 4, "梦孟" },
 684     { "M", "Mi", 1, "眯咪" },
 685     { "M", "Mi", 2, "迷弥谜靡糜醚麋猕祢縻蘼" },
 686     { "M", "Mi", 3, "米眯靡弭敉脒芈" },
 687     { "M", "Mi", 4, "密秘觅蜜谧泌汨宓幂嘧糸" },
 688     { "M", "Mian", 2, "棉眠绵" },
 689     { "M", "Mian", 3, "免缅勉腼冕娩渑湎沔眄黾" },
 690     { "M", "Mian", 4, "" },
 691     { "M", "Miao", 1, "" },
 692     { "M", "Miao", 2, "描苗瞄鹋" },
 693     { "M", "Miao", 3, "秒渺藐缈淼杪邈眇" },
 694     { "M", "Miao", 4, "妙庙缪" },
 695     { "M", "Mie", 1, "乜咩" },
 696     { "M", "Mie", 4, "灭蔑篾蠛" },
 697     { "M", "Min", 2, "民珉岷缗玟苠" },
 698     { "M", "Min", 3, "敏悯闽泯皿抿闵愍黾鳘" },
 699     { "M", "Ming", 2, "名明鸣盟铭冥茗溟瞑暝螟" },
 700     { "M", "Ming", 3, "" },
 701     { "M", "Ming", 4, "" },
 702     { "M", "Miu", 4, "谬缪" },
 703     { "M", "Mo", 1, "" },
 704     { "M", "Mo", 2, "无模麽磨摸摩魔膜蘑馍摹谟嫫" },
 705     { "M", "Mo", 3, "" },
 706     { "M", "Mo", 4, "没万默莫末冒磨寞漠墨抹陌脉嘿沫蓦茉貉秣镆殁瘼耱貊貘" },
 707     { "M", "Mou", 1, "" },
 708     { "M", "Mou", 2, "谋牟眸缪鍪蛑侔" },
 709     { "M", "Mou", 3, "" },
 710     { "M", "Mu", 2, "模毪" },
 711     { "M", "Mu", 3, "母姆姥亩拇牡" },
 712     { "M", "Mu", 4, "目木幕慕牧墓募暮牟穆睦沐坶苜仫钼" },
 713     { "N", "N", 2, "嗯唔" },
 714     { "N", "N", 3, "嗯唔" },
 715     { "N", "N", 4, "" },
 716     { "N", "Na", 1, "那南" },
 717     { "N", "Na", 2, "拿镎" },
 718     { "N", "Na", 3, "那哪" },
 719     { "N", "Na", 4, "那呢纳娜呐捺钠肭衲" },
 720     { "N", "Na", 5, "哪呐" },
 721     { "N", "Nai", 3, "哪乃奶氖艿" },
 722     { "N", "Nai", 4, "奈耐鼐佴萘柰" },
 723     { "N", "Nan", 1, "囝囡" },
 724     { "N", "Nan", 2, "难南男楠喃" },
 725     { "N", "Nan", 3, "腩蝻赧" },
 726     { "N", "Nan", 4, "" },
 727     { "N", "Nang", 1, "囊囔" },
 728     { "N", "Nang", 2, "囊馕" },
 729     { "N", "Nang", 3, "馕攮曩" },
 730     { "N", "Nao", 1, "" },
 731     { "N", "Nao", 2, "努挠呶猱铙硇蛲" },
 732     { "N", "Nao", 3, "脑恼瑙垴" },
 733     { "N", "Nao", 4, "闹淖" },
 734     { "N", "Ne", 2, "" },
 735     { "N", "Ne", 4, "呢呐讷" },
 736     { "N", "Ne", 5, "呢呐" },
 737     { "N", "Nei", 3, "哪馁" },
 738     { "N", "Nei", 4, "那内" },
 739     { "N", "Nen", 4, "嫩恁" },
 740     { "N", "Neng", 2, "" },
 741     { "N", "Ng", 2, "嗯唔" },
 742     { "N", "Ng", 3, "嗯唔" },
 743     { "N", "Ng", 4, "" },
 744     { "N", "Ni", 1, "" },
 745     { "N", "Ni", 2, "呢尼泥倪霓坭猊怩铌鲵" },
 746     { "N", "Ni", 3, "你拟旎祢" },
 747     { "N", "Ni", 4, "泥尿逆匿腻昵溺睨慝伲" },
 748     { "N", "Nian", 1, "蔫拈" },
 749     { "N", "Nian", 2, "年粘黏鲇鲶" },
 750     { "N", "Nian", 3, "碾捻撵辇" },
 751     { "N", "Nian", 4, "念廿酿埝" },
 752     { "N", "Niang", 2, "娘酿" },
 753     { "N", "Niang", 4, "" },
 754     { "N", "Niao", 3, "鸟袅嬲茑" },
 755     { "N", "Niao", 4, "尿溺脲" },
 756     { "N", "Nie", 1, "" },
 757     { "N", "Nie", 4, "涅聂孽蹑嗫啮镊镍乜陧颞臬蘖" },
 758     { "N", "Nin", 2, "您恁" },
 759     { "N", "Ning", 2, "宁凝拧咛狞柠苎甯聍" },
 760     { "N", "Ning", 3, "" },
 761     { "N", "Ning", 4, "宁拧泞佞" },
 762     { "N", "Niu", 1, "" },
 763     { "N", "Niu", 2, "" },
 764     { "N", "Niu", 3, "纽扭钮狃忸" },
 765     { "N", "Niu", 4, "" },
 766     { "N", "Nong", 2, "农浓侬哝脓" },
 767     { "N", "Nong", 4, "" },
 768     { "N", "Nou", 4, "" },
 769     { "N", "Nu", 2, "奴孥驽" },
 770     { "N", "Nu", 3, "努弩胬" },
 771     { "N", "Nu", 4, "" },
 772     { "N", "Nv", 3, "女钕" },
 773     { "N", "Nv", 4, "恧衄" },
 774     { "N", "Nuan", 3, "" },
 775     { "N", "Nue", 4, "虐疟" },
 776     { "N", "Nuo", 2, "娜挪傩" },
 777     { "N", "Nuo", 4, "诺懦糯喏搦锘" },
 778     { "O", "O", 1, "噢喔" },
 779     { "O", "O", 2, "" },
 780     { "O", "O", 4, "" },
 781     { "O", "Ou", 1, "区欧殴鸥讴瓯沤" },
 782     { "O", "Ou", 3, "偶呕藕耦" },
 783     { "O", "Ou", 4, "呕沤怄" },
 784     { "P", "Pa", 1, "派扒趴啪葩" },
 785     { "P", "Pa", 2, "爬扒耙杷钯筢" },
 786     { "P", "Pa", 4, "怕帕" },
 787     { "P", "Pa", 5, "" },
 788     { "P", "Pai", 1, "" },
 789     { "P", "Pai", 2, "排牌徘俳" },
 790     { "P", "Pai", 3, "排迫" },
 791     { "P", "Pai", 4, "派湃蒎哌" },
 792     { "P", "Pan", 1, "番攀潘扳" },
 793     { "P", "Pan", 2, "般盘胖磐蹒爿蟠" },
 794     { "P", "Pan", 4, "判盼叛畔拚襻袢泮" },
 795     { "P", "Pang", 1, "乓膀滂" },
 796     { "P", "Pang", 2, "旁庞膀磅彷螃逄" },
 797     { "P", "Pang", 3, "" },
 798     { "P", "Pang", 4, "" },
 799     { "P", "Pao", 1, "炮抛泡脬" },
 800     { "P", "Pao", 2, "跑炮袍刨咆狍匏庖" },
 801     { "P", "Pao", 3, "" },
 802     { "P", "Pao", 4, "炮泡疱" },
 803     { "P", "Pei", 1, "呸胚醅" },
 804     { "P", "Pei", 2, "陪培赔裴锫" },
 805     { "P", "Pei", 4, "配佩沛辔帔旆霈" },
 806     { "P", "Pen", 1, "" },
 807     { "P", "Pen", 2, "盆湓" },
 808     { "P", "Pen", 4, "" },
 809     { "P", "Peng", 1, "烹抨砰澎怦嘭" },
 810     { "P", "Peng", 2, "朋鹏彭棚蓬膨篷澎硼堋蟛" },
 811     { "P", "Peng", 3, "" },
 812     { "P", "Peng", 4, "" },
 813     { "P", "Pi", 1, "批坏披辟劈坯霹噼丕纰砒邳铍" },
 814     { "P", "Pi", 2, "皮疲啤脾琵毗郫鼙裨埤陴芘枇罴铍陂蚍蜱貔" },
 815     { "P", "Pi", 3, "否匹劈痞癖圮擗吡庀仳疋" },
 816     { "P", "Pi", 4, "屁辟僻譬媲淠甓睥" },
 817     { "P", "Pian", 1, "片篇偏翩扁犏" },
 818     { "P", "Pian", 2, "便蹁缏胼骈" },
 819     { "P", "Pian", 3, "" },
 820     { "P", "Pian", 4, "片骗" },
 821     { "P", "Piao", 1, "漂飘剽缥螵" },
 822     { "P", "Piao", 2, "朴瓢嫖" },
 823     { "P", "Piao", 3, "漂瞟缥殍莩" },
 824     { "P", "Piao", 4, "票漂骠嘌" },
 825     { "P", "Pie", 1, "撇瞥氕" },
 826     { "P", "Pie", 3, "撇丿苤" },
 827     { "P", "Pin", 1, "拼拚姘" },
 828     { "P", "Pin", 2, "贫频嫔颦" },
 829     { "P", "Pin", 3, "品榀" },
 830     { "P", "Pin", 4, "聘牝" },
 831     { "P", "Ping", 1, "乒娉俜" },
 832     { "P", "Ping", 2, "平评瓶凭萍屏冯苹坪枰鲆" },
 833     { "P", "Po", 1, "颇坡泊朴泼陂泺攴钋" },
 834     { "P", "Po", 2, "繁婆鄱皤" },
 835     { "P", "Po", 3, "叵钷笸" },
 836     { "P", "Po", 4, "破迫朴魄粕珀" },
 837     { "P", "Pou", 1, "" },
 838     { "P", "Pou", 2, "裒掊" },
 839     { "P", "Pou", 3, "" },
 840     { "P", "Pu", 1, "铺扑仆噗" },
 841     { "P", "Pu", 2, "葡蒲仆脯菩匍璞濮莆镤" },
 842     { "P", "Pu", 3, "普堡朴谱浦溥埔圃氆镨蹼" },
 843     { "P", "Pu", 4, "暴铺堡曝瀑" },
 844     { "Q", "Qi", 1, "期七妻欺缉戚凄漆栖沏蹊嘁萋槭柒欹桤" },
 845     { "Q", "Qi", 2, "其奇棋齐旗骑歧琪祈脐祺祁崎琦淇岐荠俟耆芪颀圻骐畦亓萁蕲畦蛴蜞綦鳍麒" },
 846     { "Q", "Qi", 3, "起企启岂乞稽绮杞芑屺綮" },
 847     { "Q", "Qi", 4, "气妻器汽齐弃泣契迄砌憩汔亟讫葺碛" },
 848     { "Q", "Qia", 1, "掐伽葜袷" },
 849     { "Q", "Qia", 3, "" },
 850     { "Q", "Qia", 4, "恰洽髂" },
 851     { "Q", "Qian", 1, "千签牵迁谦铅骞悭芊愆阡仟岍扦佥搴褰钎" },
 852     { "Q", "Qian", 2, "前钱潜乾虔钳掮黔荨钤犍箝鬈" },
 853     { "Q", "Qian", 3, "浅遣谴缱肷" },
 854     { "Q", "Qian", 4, "欠歉纤嵌倩堑茜芡慊椠" },
 855     { "Q", "Qiang", 1, "将枪抢腔呛锵跄羌戕戗镪蜣锖" },
 856     { "Q", "Qiang", 2, "强墙蔷樯嫱" },
 857     { "Q", "Qiang", 3, "强抢襁镪羟" },
 858     { "Q", "Qiang", 4, "呛跄炝戗" },
 859     { "Q", "Qiao", 1, "悄敲雀锹跷橇缲硗劁" },
 860     { "Q", "Qiao", 2, "桥乔侨瞧翘蕉憔樵峤谯荞鞒" },
 861     { "Q", "Qiao", 3, "悄巧雀愀" },
 862     { "Q", "Qiao", 4, "翘俏窍壳峭撬鞘诮谯" },
 863     { "Q", "Qie", 1, "" },
 864     { "Q", "Qie", 2, "茄伽" },
 865     { "Q", "Qie", 3, "" },
 866     { "Q", "Qie", 4, "切窃怯趄妾砌惬锲挈郄箧慊" },
 867     { "Q", "Qin", 1, "亲钦侵衾" },
 868     { "Q", "Qin", 2, "琴秦勤芹擒矜覃禽噙廑溱檎锓嗪芩螓" },
 869     { "Q", "Qin", 3, "" },
 870     { "Q", "Qin", 4, "沁揿吣" },
 871     { "Q", "Qing", 1, "青清轻倾卿氢蜻圊鲭" },
 872     { "Q", "Qing", 2, "情晴擎氰檠黥" },
 873     { "Q", "Qing", 3, "请顷謦苘" },
 874     { "Q", "Qing", 4, "亲庆罄磬箐綮" },
 875     { "Q", "Qiong", 2, "穷琼穹茕邛蛩筇跫銎" },
 876     { "Q", "Qiu", 1, "秋邱丘龟蚯鳅楸湫" },
 877     { "Q", "Qiu", 2, "求球仇囚酋裘虬俅遒赇泅逑犰蝤巯鼽" },
 878     { "Q", "Qiu", 3, "" },
 879     { "Q", "Qu", 1, "区曲屈趋驱躯觑岖蛐祛蛆麴诎黢" },
 880     { "Q", "Qu", 2, "渠瞿衢癯劬璩氍朐磲鸲蕖蠼蘧" },
 881     { "Q", "Qu", 3, "取曲娶龋苣" },
 882     { "Q", "Qu", 4, "去趣觑阒" },
 883     { "Q", "Qu", 5, "" },
 884     { "Q", "Quan", 1, "圈悛" },
 885     { "Q", "Quan", 2, "全权泉拳诠颧蜷荃铨痊醛辁筌鬈" },
 886     { "Q", "Quan", 3, "犬绻畎" },
 887     { "Q", "Quan", 4, "劝券" },
 888     { "Q", "Que", 1, "缺阙炔" },
 889     { "Q", "Que", 2, "" },
 890     { "Q", "Que", 4, "却确雀榷鹊阕阙悫" },
 891     { "Q", "Qun", 1, "" },
 892     { "Q", "Qun", 2, "群裙麇" },
 893     { "R", "Ran", 2, "然燃髯蚺" },
 894     { "R", "Ran", 3, "染冉苒" },
 895     { "R", "Rang", 1, "" },
 896     { "R", "Rang", 2, "瓤禳穰" },
 897     { "R", "Rang", 3, "嚷攘壤禳" },
 898     { "R", "Rang", 4, "" },
 899     { "R", "Rao", 2, "饶娆桡荛" },
 900     { "R", "Rao", 3, "扰绕娆" },
 901     { "R", "Rao", 4, "" },
 902     { "R", "Re", 3, "若惹喏" },
 903     { "R", "Re", 4, "" },
 904     { "R", "Ren", 2, "人任仁壬" },
 905     { "R", "Ren", 3, "忍稔荏" },
 906     { "R", "Ren", 4, "任认韧刃纫饪仞葚妊轫衽" },
 907     { "R", "Reng", 1, "" },
 908     { "R", "Reng", 2, "" },
 909     { "R", "Ri", 4, "" },
 910     { "R", "Rong", 2, "容荣融蓉溶绒熔榕戎嵘茸狨肜蝾" },
 911     { "R", "Rong", 3, "" },
 912     { "R", "Rou", 2, "柔揉蹂糅鞣" },
 913     { "R", "Rou", 4, "" },
 914     { "R", "Ru", 2, "如儒茹嚅濡孺蠕薷铷襦颥" },
 915     { "R", "Ru", 3, "辱乳汝" },
 916     { "R", "Ru", 4, "入褥缛洳溽蓐" },
 917     { "R", "Ruan", 3, "软阮朊" },
 918     { "R", "Rui", 2, "" },
 919     { "R", "Rui", 3, "" },
 920     { "R", "Rui", 4, "瑞锐芮睿枘蚋" },
 921     { "R", "Run", 4, "润闰" },
 922     { "R", "Ruo", 4, "若弱偌箬" },
 923     { "S", "Sa", 1, "撒仨挲" },
 924     { "S", "Sa", 3, "洒撒" },
 925     { "S", "Sa", 4, "萨卅飒脎" },
 926     { "S", "Sai", 1, "思塞腮鳃噻" },
 927     { "S", "Sai", 4, "赛塞" },
 928     { "S", "San", 1, "三叁毵" },
 929     { "S", "San", 3, "散伞馓糁霰" },
 930     { "S", "San", 4, "" },
 931     { "S", "Sang", 1, "丧桑" },
 932     { "S", "Sang", 3, "嗓搡磉颡" },
 933     { "S", "Sang", 4, "" },
 934     { "S", "Sao", 1, "骚搔臊缲缫鳋" },
 935     { "S", "Sao", 3, "扫嫂" },
 936     { "S", "Sao", 4, "扫梢臊埽瘙" },
 937     { "S", "Se", 4, "色塞涩瑟啬铯穑" },
 938     { "S", "Sen", 1, "" },
 939     { "S", "Seng", 1, "" },
 940     { "S", "Sha", 1, "杀沙刹纱杉莎煞砂挲鲨痧裟铩" },
 941     { "S", "Sha", 3, "" },
 942     { "S", "Sha", 4, "沙啥厦煞霎嗄歃唼" },
 943     { "S", "Shai", 1, "筛酾" },
 944     { "S", "Shai", 3, "" },
 945     { "S", "Shai", 4, "" },
 946     { "S", "Shan", 1, "山衫删煽扇珊杉栅跚姗潸膻芟埏钐舢苫髟" },
 947     { "S", "Shan", 3, "闪陕掺掸" },
 948     { "S", "Shan", 4, "单善扇禅擅膳讪汕赡缮嬗掸骟剡苫鄯钐疝蟮鳝" },
 949     { "S", "Shang", 1, "商伤汤殇觞熵墒" },
 950     { "S", "Shang", 3, "上赏晌垧" },
 951     { "S", "Shang", 4, "上尚绱" },
 952     { "S", "Shang", 5, "" },
 953     { "S", "Shao", 1, "烧稍梢捎鞘蛸筲艄" },
 954     { "S", "Shao", 2, "勺韶苕杓芍" },
 955     { "S", "Shao", 3, "" },
 956     { "S", "Shao", 4, "少绍召稍哨邵捎潲劭" },
 957     { "S", "She", 1, "奢赊猞畲" },
 958     { "S", "She", 2, "折舌蛇佘" },
 959     { "S", "She", 3, "" },
 960     { "S", "She", 4, "社设舍涉射摄赦慑麝滠歙厍" },
 961     { "S", "Shei", 2, "" },
 962     { "S", "Shen", 1, "身深参申伸绅呻莘娠诜砷糁" },
 963     { "S", "Shen", 2, "什神甚" },
 964     { "S", "Shen", 3, "审沈婶谂哂渖矧" },
 965     { "S", "Shen", 4, "甚慎渗肾蜃葚胂椹" },
 966     { "S", "Sheng", 1, "生声胜升牲甥笙" },
 967     { "S", "Sheng", 2, "绳渑" },
 968     { "S", "Sheng", 3, "省眚" },
 969     { "S", "Sheng", 4, "胜圣盛乘剩嵊晟" },
 970     { "S", "Shi", 1, "师诗失施尸湿狮嘘虱蓍酾鲺" },
 971     { "S", "Shi", 2, "时十实什识食石拾蚀埘莳炻鲥" },
 972     { "S", "Shi", 3, "使始史驶屎矢豕" },
 973     { "S", "Shi", 4, "是事世市士式视似示室势试释适氏饰逝誓嗜侍峙仕恃柿轼拭噬弑谥莳贳铈螫舐筮" },
 974     { "S", "Shi", 5, "殖匙" },
 975     { "S", "Shou", 1, "" },
 976     { "S", "Shou", 2, "" },
 977     { "S", "Shou", 3, "手首守艏" },
 978     { "S", "Shou", 4, "受授售瘦寿兽狩绶" },
 979     { "S", "Shu", 1, "书输殊舒叔疏抒淑梳枢蔬倏菽摅姝纾毹殳疋" },
 980     { "S", "Shu", 2, "熟孰赎塾秫" },
 981     { "S", "Shu", 3, "数属署鼠薯暑蜀黍曙" },
 982     { "S", "Shu", 4, "数术树述束竖恕墅漱俞戍庶澍沭丨腧" },
 983     { "S", "Shua", 1, "刷唰" },
 984     { "S", "Shua", 3, "" },
 985     { "S", "Shua", 4, "" },
 986     { "S", "Shuai", 1, "衰摔" },
 987     { "S", "Shuai", 3, "" },
 988     { "S", "Shuai", 4, "率帅蟀" },
 989     { "S", "Shuan", 1, "栓拴闩" },
 990     { "S", "Shuan", 4, "" },
 991     { "S", "Shuang", 1, "双霜孀泷" },
 992     { "S", "Shuang", 3, "" },
 993     { "S", "Shui", 2, "" },
 994     { "S", "Shui", 3, "" },
 995     { "S", "Shui", 4, "说税睡" },
 996     { "S", "Shun", 3, "" },
 997     { "S", "Shun", 4, "顺舜瞬" },
 998     { "S", "Shuo", 1, "" },
 999     { "S", "Shuo", 4, "数朔硕烁铄妁蒴槊搠" },
1000     { "S", "Si", 1, "思斯司私丝撕厮嘶鸶咝澌缌锶厶蛳" },
1001     { "S", "Si", 3, "" },
1002     { "S", "Si", 4, "四似食寺肆伺饲嗣巳祀驷泗俟汜兕姒耜笥" },
1003     { "S", "Si", 5, "" },
1004     { "S", "Song", 1, "松忪淞崧嵩凇菘" },
1005     { "S", "Song", 3, "耸悚怂竦" },
1006     { "S", "Song", 4, "送宋诵颂讼" },
1007     { "S", "Sou", 1, "搜艘馊嗖溲飕锼螋" },
1008     { "S", "Sou", 3, "擞叟薮嗾瞍" },
1009     { "S", "Sou", 4, "嗽擞" },
1010     { "S", "Su", 1, "苏稣酥" },
1011     { "S", "Su", 2, "" },
1012     { "S", "Su", 4, "诉速素肃宿缩塑溯粟簌夙嗉谡僳愫涑蔌觫" },
1013     { "S", "Suan", 1, "酸狻" },
1014     { "S", "Suan", 4, "算蒜" },
1015     { "S", "Sui", 1, "虽尿荽睢眭濉" },
1016     { "S", "Sui", 2, "随遂隋绥" },
1017     { "S", "Sui", 3, "" },
1018     { "S", "Sui", 4, "岁碎遂祟隧邃穗燧谇" },
1019     { "S", "Sun", 1, "孙荪狲飧" },
1020     { "S", "Sun", 3, "损笋榫隼" },
1021     { "S", "Suo", 1, "缩莎梭嗦唆挲娑睃桫嗍蓑羧" },
1022     { "S", "Suo", 3, "所索锁琐唢" },
1023     { "T", "Ta", 1, "他她它踏塌遢溻铊趿" },
1024     { "T", "Ta", 3, "塔鳎獭" },
1025     { "T", "Ta", 4, "踏拓榻嗒蹋沓挞闼漯" },
1026     { "T", "Tai", 1, "台胎苔" },
1027     { "T", "Tai", 2, "台抬苔邰薹骀炱跆鲐" },
1028     { "T", "Tai", 3, "" },
1029     { "T", "Tai", 4, "太态泰汰酞肽钛" },
1030     { "T", "Tan", 1, "摊贪滩瘫坍" },
1031     { "T", "Tan", 2, "谈弹坛谭潭覃痰澹檀昙锬镡郯" },
1032     { "T", "Tan", 3, "坦毯忐袒钽" },
1033     { "T", "Tan", 4, "探叹炭碳" },
1034     { "T", "Tang", 1, "汤趟铴镗耥羰" },
1035     { "T", "Tang", 2, "堂唐糖膛塘棠搪溏螳瑭樘镗螗饧醣" },
1036     { "T", "Tang", 3, "躺倘淌傥帑" },
1037     { "T", "Tang", 4, "趟烫" },
1038     { "T", "Tao", 1, "涛掏滔叨焘韬饕绦" },
1039     { "T", "Tao", 2, "逃陶桃淘萄啕洮鼗" },
1040     { "T", "Tao", 3, "" },
1041     { "T", "Tao", 4, "" },
1042     { "T", "Te", 4, "特忑忒慝铽" },
1043     { "T", "Tei", 1, "" },
1044     { "T", "Teng", 2, "腾疼藤誊滕" },
1045     { "T", "Ti", 1, "体踢梯剔锑" },
1046     { "T", "Ti", 2, "提题啼蹄醍绨缇鹈荑" },
1047     { "T", "Ti", 3, "" },
1048     { "T", "Ti", 4, "替涕剃惕屉嚏悌倜逖绨裼" },
1049     { "T", "Tian", 1, "天添" },
1050     { "T", "Tian", 2, "田填甜恬佃阗畋钿" },
1051     { "T", "Tian", 3, "腆舔忝殄" },
1052     { "T", "Tian", 4, "" },
1053     { "T", "Tiao", 1, "挑佻祧" },
1054     { "T", "Tiao", 2, "条调迢鲦苕髫龆蜩笤" },
1055     { "T", "Tiao", 3, "挑窕" },
1056     { "T", "Tiao", 4, "跳眺粜" },
1057     { "T", "Tie", 1, "贴帖萜" },
1058     { "T", "Tie", 3, "铁帖" },
1059     { "T", "Tie", 4, "帖餮" },
1060     { "T", "Ting", 1, "听厅汀烃" },
1061     { "T", "Ting", 2, "停庭亭婷廷霆蜓葶莛" },
1062     { "T", "Ting", 3, "挺艇町铤梃" },
1063     { "T", "Ting", 4, "" },
1064     { "T", "Tong", 1, "通恫嗵" },
1065     { "T", "Tong", 2, "同童彤铜桐瞳佟酮侗仝垌茼峒潼砼" },
1066     { "T", "Tong", 3, "统筒桶捅侗" },
1067     { "T", "Tong", 4, "同通痛恸" },
1068     { "T", "Tou", 1, "" },
1069     { "T", "Tou", 2, "头投骰" },
1070     { "T", "Tou", 3, "" },
1071     { "T", "Tou", 4, "" },
1072     { "T", "Tu", 1, "突秃凸" },
1073     { "T", "Tu", 2, "图途徒屠涂荼菟酴" },
1074     { "T", "Tu", 3, "土吐钍" },
1075     { "T", "Tu", 4, "吐兔堍菟" },
1076     { "T", "Tuan", 1, "" },
1077     { "T", "Tuan", 2, "团抟" },
1078     { "T", "Tuan", 3, "" },
1079     { "T", "Tuan", 4, "" },
1080     { "T", "Tui", 1, "推忒" },
1081     { "T", "Tui", 2, "" },
1082     { "T", "Tui", 3, "" },
1083     { "T", "Tui", 4, "退褪蜕煺" },
1084     { "T", "Tun", 1, "吞暾" },
1085     { "T", "Tun", 2, "屯饨臀囤豚" },
1086     { "T", "Tun", 3, "" },
1087     { "T", "Tun", 4, "" },
1088     { "T", "Tuo", 1, "托脱拖乇" },
1089     { "T", "Tuo", 2, "陀舵驼砣驮沱跎坨鸵橐佗铊酡柁鼍" },
1090     { "T", "Tuo", 3, "妥椭庹" },
1091     { "T", "Tuo", 4, "魄拓唾柝箨" },
1092     { "W", "Wa", 1, "挖哇凹娲蛙洼" },
1093     { "W", "Wa", 2, "" },
1094     { "W", "Wa", 3, "瓦佤" },
1095     { "W", "Wa", 4, "瓦袜腽" },
1096     { "W", "Wa", 5, "" },
1097     { "W", "Wai", 1, "" },
1098     { "W", "Wai", 3, "" },
1099     { "W", "Wai", 4, "" },
1100     { "W", "Wan", 1, "湾弯蜿剜豌" },
1101     { "W", "Wan", 2, "完玩顽丸纨芄烷" },
1102     { "W", "Wan", 3, "晚碗挽婉惋宛莞娩畹皖绾琬脘菀" },
1103     { "W", "Wan", 4, "万腕蔓" },
1104     { "W", "Wang", 1, "汪尢" },
1105     { "W", "Wang", 2, "王忘亡芒" },
1106     { "W", "Wang", 3, "往网枉惘罔辋魍" },
1107     { "W", "Wang", 4, "望王往忘旺妄" },
1108     { "W", "Wei", 1, "委威微危巍萎偎薇逶煨崴葳隈" },
1109     { "W", "Wei", 2, "为维围唯违韦惟帷帏圩囗潍桅嵬闱沩涠" },
1110     { "W", "Wei", 3, "委伟唯尾玮伪炜纬萎娓苇猥痿韪洧隗诿艉鲔" },
1111     { "W", "Wei", 4, "为位未味卫谓遗慰魏蔚畏胃喂尉渭猬軎" },
1112     { "W", "Wen", 1, "温瘟" },
1113     { "W", "Wen", 2, "文闻纹蚊雯璺阌" },
1114     { "W", "Wen", 3, "稳吻紊刎" },
1115     { "W", "Wen", 4, "问纹汶璺" },
1116     { "W", "Weng", 1, "翁嗡" },
1117     { "W", "Weng", 3, "" },
1118     { "W", "Weng", 4, "瓮蕹" },
1119     { "W", "Wo", 1, "窝涡蜗喔倭挝莴" },
1120     { "W", "Wo", 2, "" },
1121     { "W", "Wo", 3, "" },
1122     { "W", "Wo", 4, "握卧哦渥沃斡幄肟硪龌" },
1123     { "W", "Wu", 1, "於恶屋污乌巫呜诬兀钨邬圬" },
1124     { "W", "Wu", 2, "无亡吴吾捂毋梧唔芜浯蜈鼯" },
1125     { "W", "Wu", 3, "五武午舞伍侮捂妩忤鹉牾迕庑怃仵" },
1126     { "W", "Wu", 4, "物务误恶悟乌雾勿坞戊兀晤鹜痦寤骛芴杌焐阢婺鋈" },
1127     { "X", "Xi", 1, "西息希吸惜稀悉析夕牺腊昔熙兮溪嘻锡晰樨熄膝栖郗犀曦奚羲唏蹊淅皙汐嬉茜熹烯翕蟋歙浠僖穸蜥螅菥舾矽粞硒醯欷鼷" },
1128     { "X", "Xi", 2, "席习袭媳檄隰觋" },
1129     { "X", "Xi", 3, "喜洗禧徙玺屣葸蓰铣" },
1130     { "X", "Xi", 4, "系细戏隙饩阋禊舄" },
1131     { "X", "Xia", 1, "瞎虾呷" },
1132     { "X", "Xia", 2, "峡侠狭霞暇辖遐匣黠瑕狎硖瘕柙" },
1133     { "X", "Xia", 4, "下夏吓厦唬罅" },
1134     { "X", "Xian", 1, "先鲜仙掀纤暹莶锨氙祆籼酰跹" },
1135     { "X", "Xian", 2, "闲贤嫌咸弦娴衔涎舷鹇痫" },
1136     { "X", "Xian", 3, "显险鲜洗跣猃藓铣燹蚬筅冼" },
1137     { "X", "Xian", 4, "现见线限县献宪陷羡馅腺岘苋霰" },
1138     { "X", "Xiang", 1, "相香乡箱厢湘镶襄骧葙芗缃" },
1139     { "X", "Xiang", 2, "降详祥翔庠" },
1140     { "X", "Xiang", 3, "想响享飨饷鲞" },
1141     { "X", "Xiang", 4, "相向象像项巷橡蟓" },
1142     { "X", "Xiao", 1, "消销潇肖萧宵削嚣逍硝霄哮枭骁箫枵哓蛸绡魈" },
1143     { "X", "Xiao", 2, "淆崤" },
1144     { "X", "Xiao", 3, "小晓筱" },
1145     { "X", "Xiao", 4, "笑校效肖孝啸" },
1146     { "X", "Xie", 1, "些歇楔蝎" },
1147     { "X", "Xie", 2, "叶协鞋携斜胁谐邪挟偕撷勰颉缬" },
1148     { "X", "Xie", 3, "写血" },
1149     { "X", "Xie", 4, "写解谢泄契械屑卸懈泻亵蟹邂榭瀣薤燮躞廨绁渫榍獬" },
1150     { "X", "Xin", 1, "心新欣辛薪馨鑫芯昕忻歆锌" },
1151     { "X", "Xin", 2, "寻镡" },
1152     { "X", "Xin", 4, "信芯衅囟" },
1153     { "X", "Xing", 1, "兴星腥惺猩" },
1154     { "X", "Xing", 2, "行形型刑邢陉荥饧硎" },
1155     { "X", "Xing", 3, "省醒擤" },
1156     { "X", "Xing", 4, "性兴姓幸杏悻荇" },
1157     { "X", "Xiong", 1, "兄胸凶匈汹芎" },
1158     { "X", "Xiong", 2, "雄熊" },
1159     { "X", "Xiu", 1, "修休羞咻馐庥鸺貅髹" },
1160     { "X", "Xiu", 3, "宿朽" },
1161     { "X", "Xiu", 4, "秀袖宿臭绣锈嗅岫溴" },
1162     { "X", "Xu", 1, "需须虚吁嘘墟戌胥砉圩盱顼" },
1163     { "X", "Xu", 2, "" },
1164     { "X", "Xu", 3, "许浒栩诩糈醑" },
1165     { "X", "Xu", 4, "续序绪蓄叙畜恤絮旭婿酗煦洫溆勖" },
1166     { "X", "Xu", 5, "" },
1167     { "X", "Xuan", 1, "宣喧轩萱暄谖揎儇煊" },
1168     { "X", "Xuan", 2, "旋悬玄漩璇痃" },
1169     { "X", "Xuan", 3, "选癣" },
1170     { "X", "Xuan", 4, "旋券炫渲绚眩铉泫碹楦镟" },
1171     { "X", "Xue", 1, "削靴薛" },
1172     { "X", "Xue", 2, "学穴噱踅泶" },
1173     { "X", "Xue", 3, "雪鳕" },
1174     { "X", "Xue", 4, "血谑" },
1175     { "X", "Xun", 1, "熏勋荤醺薰埙曛窨獯" },
1176     { "X", "Xun", 2, "寻询巡循旬驯荀峋洵恂郇浔鲟" },
1177     { "X", "Xun", 4, "训迅讯逊熏殉巽徇汛蕈浚" },
1178     { "Y", "Ya", 1, "压雅呀押鸦哑鸭丫垭桠" },
1179     { "Y", "Ya", 2, "牙涯崖芽衙睚伢岈琊蚜" },
1180     { "Y", "Ya", 3, "雅瞧匹痖疋" },
1181     { "Y", "Ya", 4, "亚压讶轧娅迓揠氩砑" },
1182     { "Y", "Ya", 5, "" },
1183     { "Y", "Yan", 1, "烟燕咽殷焉淹阉腌嫣胭湮阏鄢菸崦恹" },
1184     { "Y", "Yan", 2, "言严研延沿颜炎阎盐岩铅蜒檐妍筵芫闫阽" },
1185     { "Y", "Yan", 3, "眼演掩衍奄俨偃魇鼹兖郾琰罨厣剡鼽" },
1186     { "Y", "Yan", 4, "研验沿厌燕宴咽雁焰艳谚彦焱晏唁砚堰赝餍滟酽谳" },
1187     { "Y", "Yang", 1, "央泱秧鸯殃鞅" },
1188     { "Y", "Yang", 2, "洋阳杨扬羊疡佯烊徉炀蛘" },
1189     { "Y", "Yang", 3, "养仰痒氧" },
1190     { "Y", "Yang", 4, "样漾恙烊怏鞅" },
1191     { "Y", "Yao", 1, "要约邀腰夭妖吆幺" },
1192     { "Y", "Yao", 2, "摇遥姚陶尧谣瑶窑肴侥铫珧轺爻徭繇鳐" },
1193     { "Y", "Yao", 3, "咬杳窈舀崾" },
1194     { "Y", "Yao", 4, "要药耀钥鹞曜疟" },
1195     { "Y", "Ye", 1, "耶噎椰掖" },
1196     { "Y", "Ye", 2, "爷耶邪揶铘" },
1197     { "Y", "Ye", 3, "也野冶" },
1198     { "Y", "Ye", 4, "业夜叶页液咽哗曳拽烨掖腋谒邺靥晔" },
1199     { "Y", "Yi", 1, "一医衣依椅伊漪咿揖噫猗壹铱欹黟" },
1200     { "Y", "Yi", 2, "移疑遗宜仪蛇姨夷怡颐彝咦贻迤痍胰沂饴圯荑诒眙嶷" },
1201     { "Y", "Yi", 3, "以已衣尾椅矣乙蚁倚迤蛾旖苡钇舣酏" },
1202     { "Y", "Yi", 4, "意义议易衣艺译异益亦亿忆谊抑翼役艾溢毅裔逸轶弈翌疫绎佚奕熠诣弋驿懿呓屹薏噫镒缢邑臆刈羿仡峄怿悒肄佾殪挹埸劓镱瘗癔翊蜴嗌翳" },
1203     { "Y", "Yin", 1, "因音烟阴姻殷茵荫喑湮氤堙洇铟" },
1204     { "Y", "Yin", 2, "银吟寅淫垠鄞霪狺夤圻龈" },
1205     { "Y", "Yin", 3, "引隐饮瘾殷尹蚓吲" },
1206     { "Y", "Yin", 4, "印饮荫胤茚窨" },
1207     { "Y", "Ying", 1, "应英鹰婴樱膺莺罂鹦缨瑛璎撄嘤" },
1208     { "Y", "Ying", 2, "营迎赢盈蝇莹荧萤萦瀛楹嬴茔滢潆荥蓥" },
1209     { "Y", "Ying", 3, "影颖颍瘿郢" },
1210     { "Y", "Ying", 4, "应硬映媵" },
1211     { "Y", "Yo", 1, "育哟唷" },
1212     { "Y", "Yo", 5, "" },
1213     { "Y", "Yong", 1, "拥庸佣雍臃邕镛墉慵痈壅鳙饔" },
1214     { "Y", "Yong", 2, "" },
1215     { "Y", "Yong", 3, "永勇涌踊泳咏俑恿甬蛹" },
1216     { "Y", "Yong", 4, "用佣" },
1217     { "Y", "You", 1, "优幽忧悠攸呦" },
1218     { "Y", "You", 2, "由游油邮尤犹柚鱿莸尢铀猷疣蚰蝣蝤繇莜" },
1219     { "Y", "You", 3, "有友黝酉莠牖铕卣" },
1220     { "Y", "You", 4, "有又右幼诱佑柚囿鼬宥侑蚴釉" },
1221     { "Y", "Yu", 1, "於吁迂淤纡瘀" },
1222     { "Y", "Yu", 2, "于与余予鱼愚舆娱愉馀逾渔渝俞萸瑜隅揄榆虞禺谀腴竽妤臾欤觎盂窬蝓嵛狳舁雩" },
1223     { "Y", "Yu", 3, "与语雨予宇羽禹圄屿龉伛圉庾瘐窳俣" },
1224     { "Y", "Yu", 4, "与语育遇狱雨欲预玉愈谷域誉吁蔚寓豫粥郁喻裕浴御驭尉谕毓妪峪芋昱煜熨燠菀蓣饫阈鬻聿钰鹆鹬蜮" },
1225     { "Y", "Yuan", 1, "冤渊鸳眢鸢箢" },
1226     { "Y", "Yuan", 2, "员元原园源圆缘援袁猿垣辕沅媛芫橼圜塬爰螈鼋" },
1227     { "Y", "Yuan", 3, "" },
1228     { "Y", "Yuan", 4, "院愿怨苑媛掾垸瑗" },
1229     { "Y", "Yue", 1, "约曰" },
1230     { "Y", "Yue", 4, "说月乐越阅跃悦岳粤钥刖瀹栎樾龠钺" },
1231     { "Y", "Yun", 1, "晕氲" },
1232     { "Y", "Yun", 2, "员云匀筠芸耘纭昀郧" },
1233     { "Y", "Yun", 3, "允陨殒狁" },
1234     { "Y", "Yun", 4, "员运均韵晕孕蕴酝愠熨郓韫恽" },
1235     { "Z", "Za", 1, "扎咂匝拶" },
1236     { "Z", "Za", 2, "杂咱砸" },
1237     { "Z", "Za", 3, "" },
1238     { "Z", "Zai", 1, "灾哉栽甾" },
1239     { "Z", "Zai", 3, "载仔宰崽" },
1240     { "Z", "Zai", 4, "在再载" },
1241     { "Z", "Zan", 1, "簪糌" },
1242     { "Z", "Zan", 2, "" },
1243     { "Z", "Zan", 3, "攒拶昝趱" },
1244     { "Z", "Zan", 4, "赞暂瓒錾" },
1245     { "Z", "Zan", 5, "" },
1246     { "Z", "Zang", 1, "赃臧锗" },
1247     { "Z", "Zang", 3, "" },
1248     { "Z", "Zang", 4, "藏脏葬奘" },
1249     { "Z", "Zao", 1, "遭糟" },
1250     { "Z", "Zao", 2, "" },
1251     { "Z", "Zao", 3, "早澡枣蚤藻缲" },
1252     { "Z", "Zao", 4, "造灶躁噪皂燥唣" },
1253     { "Z", "Ze", 2, "则责泽择咋啧迮帻赜笮箦舴" },
1254     { "Z", "Ze", 4, "侧仄昃" },
1255     { "Z", "Zei", 2, "" },
1256     { "Z", "Zen", 3, "" },
1257     { "Z", "Zen", 4, "" },
1258     { "Z", "Zeng", 1, "曾增憎缯罾" },
1259     { "Z", "Zeng", 4, "赠综缯甑锃" },
1260     { "Z", "Zha", 1, "查扎咋渣喳揸楂哳吒齄" },
1261     { "Z", "Zha", 2, "炸扎札喋轧闸铡" },
1262     { "Z", "Zha", 3, "眨砟" },
1263     { "Z", "Zha", 4, "炸咋诈乍蜡栅榨柞吒咤痄蚱" },
1264     { "Z", "Zhai", 1, "摘侧斋" },
1265     { "Z", "Zhai", 2, "择宅翟" },
1266     { "Z", "Zhai", 3, "" },
1267     { "Z", "Zhai", 4, "债祭寨砦瘵" },
1268     { "Z", "Zhan", 1, "占沾粘瞻詹毡谵旃" },
1269     { "Z", "Zhan", 3, "展斩辗盏崭搌" },
1270     { "Z", "Zhan", 4, "战站占颤绽湛蘸栈" },
1271     { "Z", "Zhang", 1, "张章彰璋蟑樟漳嫜鄣獐" },
1272     { "Z", "Zhang", 3, "长掌涨仉" },
1273     { "Z", "Zhang", 4, "丈涨帐障账胀仗杖瘴嶂幛" },
1274     { "Z", "Zhao", 1, "着招朝嘲昭钊啁" },
1275     { "Z", "Zhao", 2, "" },
1276     { "Z", "Zhao", 3, "找爪沼" },
1277     { "Z", "Zhao", 4, "照赵召罩兆肇诏棹笊" },
1278     { "Z", "Zhe", 1, "折遮蜇" },
1279     { "Z", "Zhe", 2, "折哲辙辄谪蛰摺磔蜇" },
1280     { "Z", "Zhe", 3, "者褶锗赭" },
1281     { "Z", "Zhe", 4, "这浙蔗鹧柘" },
1282     { "Z", "Zhe", 5, "" },
1283     { "Z", "Zhei", 4, "" },
1284     { "Z", "Zhen", 1, "真针珍斟贞侦甄臻箴砧桢溱蓁椹榛胗祯浈" },
1285     { "Z", "Zhen", 3, "诊枕疹缜畛轸稹" },
1286     { "Z", "Zhen", 4, "阵镇震圳振赈朕鸩" },
1287     { "Z", "Zheng", 1, "正争征丁挣症睁徵蒸怔筝铮峥狰钲鲭" },
1288     { "Z", "Zheng", 3, "整拯" },
1289     { "Z", "Zheng", 4, "政正证挣郑症怔铮诤帧" },
1290     { "Z", "Zhi", 1, "之只知指支织氏枝汁掷芝吱肢脂蜘栀卮胝祗" },
1291     { "Z", "Zhi", 2, "直指职值执植殖侄踯摭絷跖埴" },
1292     { "Z", "Zhi", 3, "只指纸止址旨徵趾咫芷枳祉轵黹酯" },
1293     { "Z", "Zhi", 4, "知至制识治志致质智置秩滞帜稚挚掷峙窒炙痔栉桎帙轾贽痣豸陟忮彘膣雉鸷骘蛭踬郅觯" },
1294     { "Z", "Zhong", 1, "中终钟忠衷锺盅忪螽舯" },
1295     { "Z", "Zhong", 3, "种肿踵冢" },
1296     { "Z", "Zhong", 4, "中种重众仲" },
1297     { "Z", "Zhou", 1, "周州洲粥舟诌啁" },
1298     { "Z", "Zhou", 2, "轴妯碡" },
1299     { "Z", "Zhou", 3, "肘帚" },
1300     { "Z", "Zhou", 4, "皱骤轴宙咒昼胄纣绉荮籀繇酎" },
1301     { "Z", "Zhu", 1, "诸朱珠猪株蛛洙诛铢茱邾潴槠橥侏" },
1302     { "Z", "Zhu", 2, "术逐筑竹烛躅竺舳瘃" },
1303     { "Z", "Zhu", 3, "主属煮嘱瞩拄褚渚麈" },
1304     { "Z", "Zhu", 4, "住注助著驻祝筑柱铸伫贮箸炷蛀杼翥苎疰" },
1305     { "Z", "Zhua", 1, "抓挝" },
1306     { "Z", "Zhua", 3, "" },
1307     { "Z", "Zhuai", 1, "" },
1308     { "Z", "Zhuai", 3, "" },
1309     { "Z", "Zhuai", 4, "曳拽嘬" },
1310     { "Z", "Zhuan", 1, "专砖颛" },
1311     { "Z", "Zhuan", 3, "" },
1312     { "Z", "Zhuan", 4, "传转赚撰沌篆啭馔" },
1313     { "Z", "Zhuang", 1, "装庄妆桩" },
1314     { "Z", "Zhuang", 3, "" },
1315     { "Z", "Zhuang", 4, "状壮撞幢僮戆" },
1316     { "Z", "Zhui", 1, "追锥隹椎骓" },
1317     { "Z", "Zhui", 4, "坠缀赘惴缒" },
1318     { "Z", "Zhun", 1, "屯谆肫窀" },
1319     { "Z", "Zhun", 3, "" },
1320     { "Z", "Zhuo", 1, "桌捉卓拙涿焯倬" },
1321     { "Z", "Zhuo", 2, "着著琢缴灼酌浊濯茁啄斫镯诼禚擢浞" },
1322     { "Z", "Zi", 1, "资咨滋仔姿吱兹孜谘呲龇锱辎淄髭赀孳粢趑觜訾缁鲻嵫" },
1323     { "Z", "Zi", 3, "子紫仔梓姊籽滓秭笫耔茈訾" },
1324     { "Z", "Zi", 4, "自字渍恣眦" },
1325     { "Z", "Zong", 1, "宗踪综棕鬃枞腙" },
1326     { "Z", "Zong", 3, "总偬" },
1327     { "Z", "Zong", 4, "纵粽" },
1328     { "Z", "Zou", 1, "邹诹陬鄹驺鲰" },
1329     { "Z", "Zou", 3, "" },
1330     { "Z", "Zou", 4, "奏揍" },
1331     { "Z", "Zu", 1, "租菹" },
1332     { "Z", "Zu", 2, "足族卒镞" },
1333     { "Z", "Zu", 3, "组祖阻诅俎" },
1334     { "Z", "Zuan", 1, "钻躜" },
1335     { "Z", "Zuan", 3, "纂缵" },
1336     { "Z", "Zuan", 4, "赚钻攥" },
1337     { "Z", "Zui", 1, "" },
1338     { "Z", "Zui", 3, "嘴咀觜" },
1339     { "Z", "Zui", 4, "最罪醉蕞" },
1340     { "Z", "Zun", 1, "尊遵樽鳟" },
1341     { "Z", "Zun", 3, "" },
1342     { "Z", "Zuo", 1, "作嘬" },
1343     { "Z", "Zuo", 2, "作昨琢笮" },
1344     { "Z", "Zuo", 3, "左佐撮" },
1345     { "Z", "Zuo", 4, "作做坐座凿柞怍胙阼唑祚酢" }
1346 };
1347 
1348 
1349 inline std::string WChar2Ansi(LPCWSTR pwszSrc, int codePage)
1350 {
1351     int nLen = WideCharToMultiByte(codePage, 0, pwszSrc, -1, NULL, 0, NULL, NULL);
1352     if (nLen <= 0) return std::string("");
1353 
1354     char* pszDst = nullptr;
1355     if (nLen > _trans_buffsize)
1356     {
1357         pszDst = new char[nLen];
1358 
1359         if (NULL == pszDst) return std::string("");
1360         WideCharToMultiByte(codePage, 0, pwszSrc, -1, pszDst, nLen, NULL, NULL);
1361         pszDst[nLen - 1] = 0;
1362         std::string strTemp(pszDst);
1363         delete[] pszDst;
1364         return strTemp;
1365     }
1366     else
1367     {
1368         //boost::mutex::scoped_lock s_lock(m_mutex_tcp_Identity);
1369         pszDst = f_trans_buff_->globe_buffer;
1370 
1371         WideCharToMultiByte(codePage, 0, pwszSrc, -1, pszDst, nLen, NULL, NULL);
1372         pszDst[nLen - 1] = 0;
1373         std::string strTemp(pszDst);
1374         return strTemp;
1375     }
1376 
1377 }
1378 
1379 inline std::wstring Ansi2WChar(LPCSTR pszSrc, int nLen, int codePage)
1380 {
1381     if (nLen == 0) return L"";
1382     int nSize = MultiByteToWideChar(codePage, 0, (LPCSTR)pszSrc, nLen, 0, 0);
1383     if (nSize <= 0) return NULL;
1384 
1385     wchar_t * pwszDst = NULL;
1386     if (nSize + 1 > _trans_buffsize)
1387     {
1388         pwszDst = new wchar_t[nSize + 1];
1389         if (NULL == pwszDst) return NULL;
1390 
1391         MultiByteToWideChar(codePage, 0, (LPCSTR)pszSrc, nLen, pwszDst, nSize);
1392         pwszDst[nSize] = 0;
1393         if (pwszDst[0] == 0xFEFF) // skip Oxfeff
1394             for (int i = 0; i < nSize; i++)
1395                 pwszDst[i] = pwszDst[i + 1];
1396         std::wstring wcharString(pwszDst);
1397         delete pwszDst;
1398         return wcharString;
1399     }
1400     else
1401     {
1402         //boost::mutex::scoped_lock s_lock(m_mutex_tcp_Identityw);
1403         pwszDst = f_trans_buff_->globe_bufferw;
1404 
1405         MultiByteToWideChar(codePage, 0, (LPCSTR)pszSrc, nLen, pwszDst, nSize);
1406         pwszDst[nSize] = 0;
1407         if (pwszDst[0] == 0xFEFF) // skip Oxfeff
1408             for (int i = 0; i < nSize; i++)
1409                 pwszDst[i] = pwszDst[i + 1];
1410         std::wstring wcharString(pwszDst);
1411         return wcharString;
1412 
1413     }
1414 
1415 }
1416 
1417 std::string ws2s(const wchar_t* pwszSrc, int codePage = CP_UTF8)
1418 {
1419 
1420     return WChar2Ansi(pwszSrc, codePage);
1421 }
1422 
1423 std::wstring s2ws(const char* pszSrc, int codePage = CP_UTF8)
1424 {
1425     return Ansi2WChar(pszSrc, strlen(pszSrc), codePage);
1426 }
1427 
1428 std::wstring platform_to_utf16(const char* platform)
1429 {
1430     return s2ws(platform, CP_ACP);
1431 }
1432 
1433 std::wstring platform_to_utf16(const std::string& platform)
1434 {
1435     return platform_to_utf16(platform.c_str());
1436 }
1437 
1438 std::string utf16_to_platform(const wchar_t* utf16)
1439 {
1440     return ws2s(utf16, CP_ACP);
1441 }
1442 
1443 std::string utf16_to_platform(const std::wstring& utf16)
1444 {
1445     return utf16_to_platform(utf16.c_str());
1446 }
1447 
1448 //************************************
1449 // Method:    GetPinyinString
1450 // FullName:  GetPinyinString
1451 // Access:    public 
1452 // Returns:   std::string
1453 // Qualifier: get full pinyin by hanzi
1454 // Parameter: const std::string lhanzi : chinese character
1455 //************************************
1456 std::string GetPinyinString(const std::string &lhanzi)
1457 {
1458     const size_t ltablength = sizeof(pyhz_example) / sizeof(pyhz_tab);
1459     std::string retPinyinString;
1460     unsigned char ucHigh, ucLow;
1461 
1462     for (size_t i = 0; i < lhanzi.length(); ++i)
1463     {
1464         if ((unsigned char)lhanzi[i] < 0x80)
1465         {
1466             retPinyinString += lhanzi[i];
1467             continue;
1468         }
1469         ucHigh = (unsigned char)lhanzi[i];
1470         if (i + 1 >= lhanzi.length())
1471         {
1472             break;//异常退出
1473         }
1474         ucLow = (unsigned char)lhanzi[i + 1];
1475         if (ucHigh < 0xa1 || ucLow < 0xa1)
1476         {
1477             continue;
1478         }
1479         else
1480         {
1481             std::string _hanzi;
1482             _hanzi += lhanzi[i];
1483             _hanzi += lhanzi[i + 1];
1484             for (size_t j = 0; j < ltablength; ++j)
1485             {
1486                 std::wstring _whanzitab = platform_to_utf16(pyhz_example[j].hz);
1487                 std::wstring _whanzi = platform_to_utf16(_hanzi);
1488                 //if (std::wstring::npos != _whanzitab.find(L"中"))
1489                 //{
1490                 //    int a = 0;
1491                 //}
1492                 if (std::wstring::npos != _whanzitab.find(_whanzi))
1493                 {
1494                     retPinyinString += pyhz_example[j].py;
1495                     break;
1496                 }
1497 
1498 
1499                 //std::string _hanzitab = pyhz_example[j].hz;
1500                 //if (std::string::npos != _hanzitab.find("中"))
1501                 //{
1502                 //    int a = 0;
1503                 //}
1504                 ////std::wstring _whanzitab;
1505                 //wchar_t _whanzitab[100] = { 0 };
1506                 //memcpy(_whanzitab, _hanzitab.c_str(), _hanzitab.size());
1507                 //if (std::string::npos != _hanzitab.find(_hanzi))
1508                 //{
1509                 //    retPinyinString += pyhz_example[j].py;
1510                 //    break;
1511                 //}
1512                 //else
1513                 //{
1514                 //    //添加异常处理
1515                 //    //可能是繁体中文
1516                 //    //...
1517                 //    break;//异常退出
1518                 //}
1519             }
1520 
1521             ++i;
1522         }
1523     }
1524     
1525     
1526     return retPinyinString;
1527 }
1528 
1529 //************************************
1530 // Method:    GetPinyinStringEx
1531 // FullName:  GetPinyinStringEx
1532 // Access:    public 
1533 // Returns:   std::string
1534 // Qualifier: output pinyin by hanzi
1535 // Parameter: const std::string & lhanzi
1536 // Parameter: const opyt loutputtype
1537 //************************************
1538 std::string GetPinyinStringEx(const std::string &lhanzi, const opyt loutputtype)
1539 {
1540     const size_t ltablength = sizeof(pyhz_example) / sizeof(pyhz_tab);
1541     std::string retPinyinString;
1542     unsigned char ucHigh, ucLow;
1543 
1544     for (size_t i = 0; i < lhanzi.length(); ++i)
1545     {
1546         if ((unsigned char)lhanzi[i] < 0x80)
1547         {
1548             retPinyinString += lhanzi[i];
1549             continue;
1550         }
1551         ucHigh = (unsigned char)lhanzi[i];
1552         if (i + 1 >= lhanzi.length())
1553         {
1554             break;//异常退出
1555         }
1556         ucLow = (unsigned char)lhanzi[i + 1];
1557         if (ucHigh < 0xa1 || ucLow < 0xa1)
1558         {
1559             continue;
1560         }
1561         else
1562         {
1563             std::string _hanzi;
1564             _hanzi += lhanzi[i];
1565             _hanzi += lhanzi[i + 1];
1566             for (size_t j = 0; j < ltablength; ++j)
1567             {
1568                 std::wstring _whanzitab = platform_to_utf16(pyhz_example[j].hz);
1569                 std::wstring _whanzi = platform_to_utf16(_hanzi);
1570                 if (std::wstring::npos != _whanzitab.find(_whanzi))
1571                 {
1572                     switch (loutputtype)
1573                     {
1574                     case first_pinyin_string:
1575                         retPinyinString += pyhz_example[j].fpy;
1576                         break;
1577                     case full_pinyin_string:
1578                         retPinyinString += pyhz_example[j].py;
1579                         break;
1580                     default:;
1581                     }
1582                     break;
1583                 }
1584             }
1585 
1586             ++i;
1587         }
1588     }
1589 
1590     return retPinyinString;
1591 }
1592 void main()
1593 {
1594     std::string test01 = "中华人民共和国";
1595     std::string test01rt;
1596     test01rt = GetPinyinString(test01);
1597 
1598     std::string test02 = "中华hh人民a共和;;国e";
1599     std::string test02rt;
1600     test02rt = GetPinyinString(test02);
1601 
1602     std::string test03 = "中华hh人民a共和;;国e";
1603     std::string test03rt;
1604     test03rt = GetPinyinStringEx(test03, first_pinyin_string);
1605 
1606     std::string test04 = "中华hh人民a共和;;国e";
1607     std::string test04rt;
1608     test04rt = GetPinyinStringEx(test04, full_pinyin_string);
1609 
1610 
1611     std::cout << test01rt << std::endl;
1612 }

 

关于C++对汉字拼音的处理(3)

原文:http://www.cnblogs.com/superstargg/p/4396615.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!