T9輸入法全名為智能輸入法,字庫容量九千多字,支持十多種語言,是由美國特捷通訊軟件公司開發的,該輸入法解決了小型掌上設備的文字輸入問題,已經成為全球手機文字輸入的標準之一。
一般手機拼音輸入鍵盤如圖:

在這個鍵盤上,我們對比下傳統的輸入法和T9 輸入法,輸入“中國”兩個字需要的按鍵次數。傳統的方法,先按4次9,輸入字母z,再按2 次4 ,輸入字母h ,再按3 次6,輸入字母o,再按2 次6,輸入字母n ,最后按1次4,輸入字母g 。這樣,輸入“中”字,要按鍵12次,接著同樣的方法,輸入“國”字,需要按6次,總共就是18 次按鍵。 如果是 T9,我們輸入“中”字,只需要輸入:9、4、6、6、4,即可實現輸入“中”字,在選擇中字之后,T9會聯想出一系列同中字組合的次,如文、國、斷、山等。這樣輸入“國”字,我們直接選擇即可,所以輸入“國”字按鍵0次,這樣T9 總共只需要5 次按鍵。 這就是T9 智能輸入法的優越之處。正因為T9 輸入法高效便捷的輸入方式得到了眾多手機廠商的采用,以至于T9成為了使用頻率最高知名度最大的手機輸入法。
先將漢語拼音所有可能的組合全部列出來,如下所示:
const u8 PY_mb_space[]={""};
const u8 PY_mb_a []={"啊阿腌吖錒厑嗄錒呵腌"};
const u8 PY_mb_ai []={"愛埃挨哎唉哀皚癌藹矮艾礙隘捱噯嗌嬡璦曖砹锿靄"};
const u8 PY_mb_an []={"安俺按暗岸案鞍氨諳胺埯揞犴庵桉銨鵪黯"};更多組合見代碼:
//"拼音輸入法漢字排列表"
const unsigned char PY_mb_space [] = {""}; //來 自 :ST_M8._C N
const unsigned char PY_mb_a[]= {"啊阿吖嗄腌錒呵安按愛暗埃"};
const unsigned char PY_mb_ai[]= {"愛埃礙矮挨唉哎哀皚癌藹艾隘呆捱噯嗌嬡璦曖砹锿靄"};
const unsigned char PY_mb_an[]= {"安按暗岸案俺氨胺鞍諳埯揞犴庵桉銨鵪黯廣廠"};
const unsigned char PY_mb_ang[]= {"昂骯盎"};
const unsigned char PY_mb_ao[]= {"凹奧敖熬翱襖傲懊澳囂坳拗嗷岙廒遨媼驁獒聱螯鏊鰲鏖"};
const unsigned char PY_mb_b[]= {"不部本鮑柏畢變比并別百報步辦表"};
const unsigned char PY_mb_ba[]= {"把八吧巴拔霸罷爸壩芭捌扒叭笆疤跋靶耙茇菝岜灞鈀粑鲅魃"};
const unsigned char PY_mb_bai[]= {"百白敗擺伯柏佰拜稗捭掰"};
const unsigned char PY_mb_ban[]= {"辦半板班般版拌搬斑扳伴頒扮瓣絆阪坂鈑瘢癍舨"};
const unsigned char PY_mb_bang[]= {"幫棒邦榜梆膀綁磅蚌鎊傍謗蒡浜"};
const unsigned char PY_mb_bao[]= {"報保包剝薄胞暴寶飽抱爆炮堡刨苞褒雹豹鮑曝瀑葆孢煲鴇褓趵齙勹宀"};
const unsigned char PY_mb_bei[]= {"北被倍備背輩貝杯卑臂悲碑鋇狽憊焙孛陂邶埤萆蓓唄悖碚鵯褙鐾鞴"};
const unsigned char PY_mb_ben[]= {"本奔苯笨夯畚坌賁錛"};
const unsigned char PY_mb_beng[]= {"泵崩蚌繃甭蹦迸嘣甏"};
const unsigned char PY_mb_bi []= {"比必避閉辟筆壁臂畢彼逼幣鼻蔽秘鄙碧蓖斃毖庇痹敝弊陛拂泌匕俾埤芘蓽荸萆薜吡嗶狴庳愎潷濞弼妣婢嬖璧賁睥畀鉍秕裨篳箅篦舭襞蹕髀"};
const unsigned char PY_mb_bian[]= {"變邊便編遍辯扁辨鞭貶卞辮匾弁芐忭汴緶飚煸砭碥窆褊蝙籩鳊彼岸"}; //來 自 :ST_M8._C N
const unsigned char PY_mb_biao[]= {"表標彪膘勺婊驃杓颮飆鏢鑣瘭裱鰾髟"};
const unsigned char PY_mb_bie[]= {"別鱉憋癟蹩"};
const unsigned char PY_mb_bin[]= {"賓彬斌瀕濱擯儐豳繽玢檳殯臏鑌髕鬢"};
const unsigned char PY_mb_bing[]= {"并病兵柄冰丙餅秉炳屏稟邴摒檳"};
const unsigned char PY_mb_bo[]= {"波播剝伯撥薄博勃駁玻泊柏卜菠缽搏鉑箔帛舶脖膊渤魄孛亳啵餑檗掰擘礴鈸鵓簸趵跛踣"};
const unsigned char PY_mb_bu[]= {"不部步布補捕埔卜堡哺埠簿怖卟逋瓿晡钚鈽醭"};
const unsigned char PY_mb_c[]= {"產成程陳蔡曹崔楚褚池仇晁岑從此處車場傳廠才次查"};
const unsigned char PY_mb_ca[]= {"擦拆嚓礤"};
const unsigned char PY_mb_cai[]= {"采才材菜財裁彩猜睬踩蔡"};
const unsigned char PY_mb_can[]= {"參殘蠶燦餐慚慘孱驂璨粲黲"};
const unsigned char PY_mb_cang[]= {"藏倉蒼艙滄"};
const unsigned char PY_mb_cao[]= {"草槽操糙曹嘈漕螬艚"};
const unsigned char PY_mb_ce[]= {"測策側冊廁惻"};
const unsigned char PY_mb_cen[]= {"參岑涔"};
const unsigned char PY_mb_ceng[]= {"層曾蹭噌"};
const unsigned char PY_mb_ch[]= {"差長常昌超陳程城持重出初"};
const unsigned char PY_mb_cha[]= {"查差插察茶叉茬碴搽岔詫剎喳嚓猹馇汊姹杈楂槎檫鍤镲衩"};
const unsigned char PY_mb_chai[]= {"差柴拆豺儕釵瘥蠆"};
const unsigned char PY_mb_chan[]= {"產單鏟闡攙摻蟬饞讒纏顫囅諂蕆廛懺潺澶孱羼嬋驏覘禪鐔蟾躔"};
const unsigned char PY_mb_chang[]= {"長常場廠唱腸昌倡償暢猖嘗敞裳倘倀鬯萇菖徜悵惝閶娼嫦昶氅鯧"};
const unsigned char PY_mb_chao[]= {"朝超潮巢抄鈔嘲吵炒綽剿怊晁焯耖"};
const unsigned char PY_mb_che[]= {"車徹尺撤扯掣澈坼硨"};
const unsigned char PY_mb_chen[]= {"陳沉稱襯塵臣晨沈郴辰忱趁傖諶讖抻嗔宸琛櫬磣齔"};
const unsigned char PY_mb_cheng[]= {"成程稱城承乘呈盛撐誠橙懲澄逞騁秤丞埕噌棖檉塍瞠鋮鐺裎蟶酲"};
const unsigned char PY_mb_chi[]= {"持尺齒吃赤池遲翅斥恥癡匙弛馳侈熾傺坻墀茌叱哧啻嗤彳飭媸敕眵鴟瘛褫蚩螭笞篪豉踟魑"};
const unsigned char PY_mb_chong[]= {"種蟲重充沖崇涌寵茺忡憧銃舂艟"};
const unsigned char PY_mb_chou[]= {"抽仇臭酬疇躊稠愁籌綢瞅丑儔幬惆瘳讎"};
const unsigned char PY_mb_chu[]= {"出處除初礎觸楚鋤儲畜櫥廚躇雛滁矗搐亍芻怵憷絀杵楮樗褚蜍躕黜屮"};
const unsigned char PY_mb_chuai[]= {"揣搋啜嘬膪踹"};
const unsigned char PY_mb_chuan[]= {"傳船穿串川椽喘舛遄巛氚釧舡"};
const unsigned char PY_mb_chuang[]={"床創窗闖瘡幢愴"};
const unsigned char PY_mb_chui[]= {"吹垂錘椎炊捶陲棰槌"};
const unsigned char PY_mb_chun[]= {"春純醇椿唇淳蠢莼鶉蝽"};
const unsigned char PY_mb_chuo[]= {"戳綽啜輟踔齪"};
const unsigned char PY_mb_ci[]= {"此次刺磁雌詞茨疵辭慈瓷賜伺茲茈呲祠鶿糍"};
const unsigned char PY_mb_cong[]= {"從叢聰蔥囪匆蓯淙驄琮璁"};
const unsigned char PY_mb_cou[]= {"湊楱輳腠"};
const unsigned char PY_mb_cu[]= {"粗促醋簇卒蔟徂猝殂酢蹙蹴"};
const unsigned char PY_mb_cuan[]= {"篡躥竄攢汆攛爨镩"};
const unsigned char PY_mb_cui[]= {"催脆淬粹摧衰崔瘁翠萃啐悴璀榱毳隹"}; //來 自 :ST_M8._C N
const unsigned char PY_mb_cun[]= {"存村寸蹲忖皴"};
const unsigned char PY_mb_cuo[]= {"錯措撮磋搓挫厝嵯脞銼矬痤瘥鹺蹉"};
const unsigned char PY_mb_d[]= {"的大地杜董段戴鄧丁竇狄翟刁電黨定等當隊點代道"};
const unsigned char PY_mb_da[]= {"大打達答搭塔瘩耷噠嗒怛妲沓疸褡笪靼韃"};
const unsigned char PY_mb_dai[]= {"大代帶待袋戴呆歹傣殆貸逮怠埭甙呔岱迨駘紿玳黛"};
const unsigned char PY_mb_dan[]= {"單但彈擔石蛋淡膽氮丹旦耽鄲撣憚誕儋萏啖澹殫賧眈疸癉聃簞"};
const unsigned char PY_mb_dang[]= {"黨當檔擋蕩讜凼菪宕碭襠"};
const unsigned char PY_mb_dao[]= {"到道導刀倒稻島搗盜蹈禱悼叨幬忉氘燾纛"};
const unsigned char PY_mb_de[]= {"的得地德底锝"};
const unsigned char PY_mb_deng[]= {"等燈登鄧澄蹬瞪凳噔嶝戥磴鐙簦"};
const unsigned char PY_mb_di[]= {"的地第低敵底提帝抵滴弟遞堤迪笛狄滌翟嫡蒂締氐糴詆諦邸坻荻嘀娣綈柢棣覿砥碲睇鏑羝骶"};
const unsigned char PY_mb_dia[]= {"嗲"};
const unsigned char PY_mb_dian[]= {"電點墊典店顛淀掂滇碘靛佃甸惦奠殿阽坫巔玷鈿癜癲簟踮"};
const unsigned char PY_mb_diao[]= {"調掉吊鳥碉叼雕凋刁釣铞銚貂鯛"};
const unsigned char PY_mb_die[]= {"迭跌爹碟蝶諜疊垤堞揲喋牒瓞耋踮蹀鰈"};
const unsigned char PY_mb_ding[]= {"定頂釘丁訂盯叮鼎錠仃啶玎腚碇町鋌疔耵酊"};
const unsigned char PY_mb_diu[]= {"丟銩"};
const unsigned char PY_mb_dong[]= {"動東冬懂洞凍董棟侗恫垌咚崠峒氡胨胴硐鶇"};
const unsigned char PY_mb_dou[]= {"斗都豆讀兜抖陡逗痘蔸竇蚪篼"};
const unsigned char PY_mb_du[]= {"度都毒獨讀渡杜堵鍍頓督犢睹賭肚妒芏嘟瀆櫝牘蠹篤髑黷"};
const unsigned char PY_mb_duan[]= {"斷端段短鍛緞椴煅籪"};
const unsigned char PY_mb_dui[]= {"對隊堆敦兌懟憝碓"};
const unsigned char PY_mb_dun[]= {"盾噸頓蹲敦墩囤鈍遁沌燉砘礅盹鐓躉"};
const unsigned char PY_mb_duo[]= {"多度奪朵掇哆垛躲跺舵剁惰墮馱咄哚沲綞柁鐸裰踱"};
const unsigned char PY_mb_e[]= {"惡額恩俄耳餌蛾餓峨鵝訛娥厄扼遏鄂噩諤堊苊莪萼呃愕屙婀軛腭鋨鍔鶚顎鱷"};
const unsigned char PY_mb_ei[]= {"誒"};
const unsigned char PY_mb_en[]= {"恩蒽摁"};
const unsigned char PY_mb_er[]= {"而二爾兒耳餌洱貳佴邇珥鉺鴯鮞"};
const unsigned char PY_mb_f[]= {"分發范樊方馮反放復風防非封富翻"};
const unsigned char PY_mb_fa[]= {"發法閥乏伐罰筏琺垡砝"};
const unsigned char PY_mb_fan[]= {"反翻范犯飯繁泛番凡煩返藩帆樊礬釩販蕃蘩幡梵燔畈蹯"};
const unsigned char PY_mb_fang[]= {"方放防訪房紡仿妨芳肪坊邡彷枋鈁舫魴"};
const unsigned char PY_mb_fei[]= {"非肥飛費廢肺沸菲匪啡誹吠芾狒悱淝妃緋榧腓斐扉鐨痱蜚篚翡霏鯡"};
const unsigned char PY_mb_fen[]= {"分粉奮份糞紛芬憤酚吩氛墳焚汾忿僨瀵玢棼鲼鼢"};
const unsigned char PY_mb_feng[]= {"風封蜂豐縫峰鋒瘋奉楓烽逢馮諷鳳俸酆葑唪灃砜"};
const unsigned char PY_mb_fo[]= {"佛"};
const unsigned char PY_mb_fou[]= {"否缶"};
const unsigned char PY_mb_fu[]= {"復服副府夫負富附福伏符幅腐浮輔付腹婦孵覆扶輻傅佛縛父弗甫膚氟敷拂俘涪袱撫俯釜斧脯腑赴賦阜訃咐匐鳧郛芙芾苻茯莩菔拊呋幞怫滏艴孚駙紱紼桴賻祓砩黻黼罘稃馥蚨蜉蝠蝮麩趺跗鮒鰒"};
const unsigned char PY_mb_g[]= {"個國工過高郭戈葛耿鞏龔甘干古賈谷顧關管各革公根更改光廣果格共搞"};
const unsigned char PY_mb_ga[]= {"夾噶嘎胳尬尕尜旮釓"}; //來 自 :ST_M8._C N
const unsigned char PY_mb_gai[]= {"改該蓋概鈣溉芥丐陔垓戤賅"};
const unsigned char PY_mb_gan[]= {"干桿感敢趕甘肝稈柑竿贛乾坩苷尷搟泔淦澉紺橄旰矸疳酐"};
const unsigned char PY_mb_gang[]= {"剛鋼缸綱崗港杠岡肛扛戇罡筻"};
const unsigned char PY_mb_gao[]= {"高搞告稿膏篙皋羔糕鎬睪誥郜藁縞槔槁杲鋯"};
const unsigned char PY_mb_ge[]= {"個各革合格割歌隔蓋哥葛鉻閣戈擱鴿胳疙蛤咯屹鬲仡哿圪塥嗝紇搿膈硌鎘袼頜虼舸骼"};
const unsigned char PY_mb_gei[]= {"給"};
const unsigned char PY_mb_gen[]= {"根跟亙茛哏艮"};
const unsigned char PY_mb_geng[]= {"更耕頸庚羹埂耿梗哽賡綆鯁"};
const unsigned char PY_mb_gong[]= {"工公共供功攻紅鞏貢汞宮恭龔躬弓拱珙肱蚣觥"};
const unsigned char PY_mb_gou[]= {"夠構溝句狗鉤勾購茍垢佝詬岣遘媾緱枸覯彀笱篝鞲"};
const unsigned char PY_mb_gu[]= {"鼓固古骨故顧股谷估雇孤姑賈辜菇咕箍沽蠱嘏詁菰呱崮汩梏轱牯牿臌轂瞽罟鈷錮鴣鵠痼蛄酤觚鲴鶻"};
const unsigned char PY_mb_gua[]= {"掛刮瓜括剮寡褂卦詿呱栝胍鴰"};
const unsigned char PY_mb_guai[]= {"怪乖拐摑"};
const unsigned char PY_mb_guan[]= {"關管觀官灌貫慣冠館罐棺綸倌莞摜涫盥鸛矜鰥"};
const unsigned char PY_mb_guang[]={"光廣逛咣獷桄胱"};
const unsigned char PY_mb_gui[]= {"規貴歸硅鬼軌龜桂瑰圭閨詭癸柜跪劊傀炔匭劌庋宄媯檜炅晷皈簋鮭鱖"};
const unsigned char PY_mb_gun[]= {"滾輥棍袞緄磙鯀"};
const unsigned char PY_mb_guo[]= {"國過果鍋郭渦裹馘堝摑咼幗崞猓槨虢聒蜾蟈"};
const unsigned char PY_mb_h[]= {"和會后何黃胡洪侯賀霍扈韓華郝化好合還活很回號毫花或海話紅火害"};
const unsigned char PY_mb_ha[]= {"哈蛤蝦鉿"};
const unsigned char PY_mb_hai[]= {"還海害孩骸氦亥駭嘿咳嗨胲醢"};
const unsigned char PY_mb_han[]= {"含焊旱喊漢寒汗函韓酣憨邯涵罕翰撼捍憾悍邗菡撖闞瀚晗焓頇頷蚶鼾"};
const unsigned char PY_mb_hang[]= {"行航夯杭吭巷沆絎珩頏"};
const unsigned char PY_mb_hao[]= {"好號毫耗豪郝浩鎬壕嚎貉蒿薅嗥嚆濠灝昊皓顥蠔"};
const unsigned char PY_mb_he[]= {"和合河何核赫荷褐喝賀呵禾嚇盒菏貉閡涸鶴訶劾壑嗬闔紇曷盍頜蚵翮"};
const unsigned char PY_mb_hei[]= {"黑嘿嗨"};
const unsigned char PY_mb_hen[]= {"很狠痕恨"};
const unsigned char PY_mb_heng[]= {"橫衡恒哼亨蘅行珩桁"};
const unsigned char PY_mb_hong[]= {"紅洪轟烘哄虹鴻宏弘黌訇訌葒蕻薨閎泓"};
const unsigned char PY_mb_hou[]= {"后候厚侯喉猴吼堠後逅瘊篌糇鱟骺"};
const unsigned char PY_mb_hu[]= {"和護互湖呼戶弧乎胡糊虎忽核瑚戲壺葫蝴狐唬滬冱唿囫岵猢怙惚滸滹琥槲轷觳烀煳戽扈祜瓠鵠鶘鹱笏醐斛"};
const unsigned char PY_mb_hua[]= {"化花話劃滑華畫嘩猾豁驊樺砉鏵"};
const unsigned char PY_mb_huai[]= {"壞懷劃淮槐徊踝"};
const unsigned char PY_mb_huan[]= {"還環換歡緩患幻煥桓喚瘓豢渙宦郇奐萑擐圜獾洹浣漶寰逭繯鍰鯇鬟"};
const unsigned char PY_mb_huang[]= {"黃簧荒皇慌蝗磺凰惶煌晃幌恍謊隍徨湟潢遑璜肓癀蟥篁鰉"};
const unsigned char PY_mb_hui[]= {"會回灰揮輝匯毀慧恢繪惠徽潰墮徊蛔悔卉晦賄穢燴諱誨詼茴薈蕙咴噦喙隳洄澮彗繢琿檜暉恚虺蟪麾"};
const unsigned char PY_mb_hun[]= {"混渾葷昏婚魂諢餛閽溷"};
const unsigned char PY_mb_huo[]= {"和活或火貨獲伙霍豁惑禍劐藿攉嚯夥鈥锪鑊耠蠖"};
const unsigned char PY_mb_j[]= {"級賈江蔣姜焦金靳晉就進加經家結階間件及解較機軍接教極九見"};
const unsigned char PY_mb_ji[]= {"級及機極幾積給基其記己期系革計集即際季激濟技擊繼急劑既紀寄擠雞跡績齊奇吉脊輯籍疾肌棘畸圾稽箕饑譏姬緝汲嫉薊冀伎祭悸寂忌妓藉丌亟乩剞佶偈詰墼芨芰薺蒺蕺掎嘰咭嚌唧岌嵴洎屐驥畿璣楫殛戟戢赍覬犄齏磯羈嵇稷瘠蟣笈笄暨躋跽霽鱭鯽髻麂"};
const unsigned char PY_mb_jia[]= {"加家架價甲夾假鉀賈稼駕嘉枷佳莢頰嫁茄挾嘏伽郟葭岬浹迦珈戛胛恝鋏鎵痂瘕袷蛺笳袈跏"};
const unsigned char PY_mb_jian[]= {"間件見建堅減檢踐尖簡堿剪艱漸肩鍵健柬鑒劍殲監兼淺奸箭繭艦儉箋煎緘鹼揀撿薦檻賤餞濺澗僭諫谫菅蒹搛囝湔蹇謇縑枧楗戔戩牮犍毽腱瞼锏鶼裥筧翦趼踺鰹韉"};
const unsigned char PY_mb_jiang[]= {"將降講強江漿蔣獎疆僵姜槳匠醬茳洚絳韁犟礓耩糨豇"};
const unsigned char PY_mb_jiao[]= {"較教交角叫腳膠澆焦覺校蕉攪酵郊鉸窖椒礁驕嬌嚼矯僥狡餃繳絞剿轎佼僬艽茭撟噍嶠徼姣敫皎鷦蛟醮跤鮫"};
const unsigned char PY_mb_jie[]= {"結階解接節家界截介借價屆街揭潔杰竭皆秸劫桔捷睫姐戒藉芥疥誡楷偈訐詰拮喈嗟婕孑桀碣癤頡蚧羯鮚骱"};
const unsigned char PY_mb_jin[]= {"進金近緊斤今盡僅勁浸禁津筋錦晉巾襟謹靳燼巹藎堇噤饉廑妗縉瑾槿贐覲衿矜"};
const unsigned char PY_mb_jing[]= {"經精京徑井靜竟晶凈境鏡景警勁莖敬驚睛競荊兢鯨粳痙靖剄儆阱菁獍憬涇逕弳婧肼脛腈旌靚"};
const unsigned char PY_mb_jiong[]= {"炯窘迥炅扃"};
const unsigned char PY_mb_jiu[]= {"就九舊究久救酒糾揪玖韭灸廄臼舅咎疚僦啾鬮柩桕鳩鷲赳鬏"};
const unsigned char PY_mb_ju[]= {"具據局舉車句聚距巨居鋸劇矩拒柜桔鞠拘狙疽駒菊咀沮踞俱懼炬倨詎苣苴莒掬遽屨琚枸椐榘櫸橘犋颶鉅鋦窶裾趄醵踽齟雎瞿鞫"};
const unsigned char PY_mb_juan[]= {"卷捐鵑娟倦眷絹俊鄄狷涓桊蠲錈鐫雋"};
const unsigned char PY_mb_jue[]= {"決覺絕角腳掘嚼撅攫抉倔爵訣厥劂譎矍蕨嗟噘噱崛獗孓玨桷橛爝镢蹶觖巨額"};
const unsigned char PY_mb_jun[]= {"軍均菌君龜鈞峻俊竣浚郡駿捃皸筠麇"};
const unsigned char PY_mb_k[]= {"可開看蒯克孔鄺寇科口空苦快考刻靠況塊困寬礦抗卡"};
const unsigned char PY_mb_ka[]= {"卡喀咖咯佧咔胩"};
const unsigned char PY_mb_kai[]= {"開凱揩楷慨剴塏蒈愾愷鎧锎鍇"};
const unsigned char PY_mb_kan[]= {"看刊坎檻堪勘砍嵌侃莰闞戡龕瞰"};
const unsigned char PY_mb_kang[]= {"抗康炕慷糠扛亢伉閌鈧"};
const unsigned char PY_mb_kao[]= {"考靠拷烤尻栲犒銬"};
const unsigned char PY_mb_ke[]= {"可克科刻客殼顆棵柯呵坷苛磕咳渴課嗑岢恪溘騍緙珂軻氪瞌鈳錁稞疴窠頦蝌髁"};
const unsigned char PY_mb_ken[]= {"肯啃墾懇裉"};
const unsigned char PY_mb_keng[]= {"坑吭鏗"};
const unsigned char PY_mb_kong[]= {"孔空控恐倥崆箜"};
const unsigned char PY_mb_kou[]= {"口扣摳寇芤蔻叩眍筘"};
const unsigned char PY_mb_ku[]= {"苦庫枯酷哭窟褲刳堀嚳绔骷"};
const unsigned char PY_mb_kua[]= {"跨夸垮挎胯侉"};
const unsigned char PY_mb_kuai[]= {"會快塊筷儈蒯鄶噲獪澮膾"};
const unsigned char PY_mb_kuan[]= {"寬款髖"};
const unsigned char PY_mb_kuang[]= {"況礦狂框匡筐眶曠誆誑鄺壙夼哐纊貺"};
const unsigned char PY_mb_kui[]= {"奎潰饋虧盔巋窺葵魁傀愧馗匱夔隗蕢揆喹喟悝憒逵暌睽聵蝰簣跬"};
const unsigned char PY_mb_kun[]= {"困昆坤捆悃閫琨錕醌鯤髡"};
const unsigned char PY_mb_kuo[]= {"擴括適闊廓栝蛞"};
const unsigned char PY_mb_l[]= {"了來賴羅呂劉魯李林雷廖盧梁厲廉陸龍黎鹿量理路里論兩利領流力立料連老六輪類列"};
const unsigned char PY_mb_la[]= {"拉落啦蠟臘藍垃喇辣剌邋旯砬瘌"};
const unsigned char PY_mb_lai[]= {"來賴萊崍徠淶瀨賚睞錸癩籟"};
const unsigned char PY_mb_lan[]= {"蘭爛藍覽欄婪攔籃闌瀾讕攬懶纜濫嵐漤欖斕罱鑭襤"};
const unsigned char PY_mb_lang[]= {"浪朗郎狼瑯榔廊莨蒗啷閬鋃稂螂"};
const unsigned char PY_mb_lao[]= {"老勞落牢澇撈絡佬姥酪烙潦嘮嶗栳銠鐒癆耢醪"};
const unsigned char PY_mb_le[]= {"了樂勒肋仂叻泐鰳"};
const unsigned char PY_mb_lei[]= {"類雷累勒壘淚鐳蕾磊儡擂肋羸誄嘞嫘縲檑耒酹"};
const unsigned char PY_mb_leng[]= {"冷棱楞塄愣"};
const unsigned char PY_mb_li[]= {"理里利力立離例歷粒厘禮李隸黎璃勵犁梨麗厲籬貍漓鯉莉荔吏栗礫傈俐痢瀝哩鬲儷俚酈壢藶蒞蘺藜嚦唳喱猁悝溧澧邐娌嫠驪縭櫪櫟轢戾礪詈罹鋰鸝癘疬蠣蜊蠡笠篥糲醴躒靂鱺鱧黧"};
const unsigned char PY_mb_lia[]= {"倆"};
const unsigned char PY_mb_lian[]= {"連聯練煉臉鏈蓮鐮廉憐漣簾斂戀蘞奩瀲濂璉楝殮臁褳襝蠊鰱立案"};
const unsigned char PY_mb_liang[]= {"量兩糧良亮梁涼輛粱晾諒墚莨椋踉靚魎"};
const unsigned char PY_mb_liao[]= {"了料療遼僚撩聊燎寥潦撂鐐廖蓼尥嘹獠寮繚釕鷯"};
const unsigned char PY_mb_lie[]= {"列裂烈劣獵冽埒捩咧洌趔躐鬣"};
const unsigned char PY_mb_lin[]= {"林磷臨鄰淋麟琳霖鱗凜賃吝藺啉嶙廩懔遴檁轔膦瞵粼躪"};
const unsigned char PY_mb_ling[]= {"領另零令靈嶺鈴齡凌棱陵拎玲菱伶羚酃苓呤囹泠綾柃欞瓴聆蛉翎鯪"};
const unsigned char PY_mb_liu[]= {"流六留劉硫柳陸餾瘤溜琉榴碌瀏遛騮綹旒熘锍鎦鷚鎏"};
const unsigned char PY_mb_lo[]= {"咯"};
const unsigned char PY_mb_long[]= {"龍壟弄籠隆聾嚨窿攏隴垅蘢瀧瓏櫳朧礱癃"};
const unsigned char PY_mb_lou[]= {"漏露樓婁摟簍陋僂蔞嘍嶁鏤瘺耬螻髏"};
const unsigned char PY_mb_lu[]= {"路錄陸爐露蘆盧顱廬擄鹵虜魯麓碌賂鹿潞祿戮壚擼嚕瀘淥漉逯璐櫨櫓轤輅轆氌臚镥鸕鷺簏艫鱸六綠"};
const unsigned char PY_mb_luan[]= {"卵亂巒攣孿灤臠孌欒鸞鑾"};
const unsigned char PY_mb_lue[]= {"略掠鋝"};
const unsigned char PY_mb_lun[]= {"論輪倫掄侖淪綸圇"};
const unsigned char PY_mb_luo[]= {"落羅螺洛絡邏咯烙蘿鑼籮騾裸駱倮蠃犖捋摞玀濼漯珞欏腡硌鏍瘰雒"};
const unsigned char PY_mb_lv[]= {"率律旅慮驢呂鋁侶履屢縷氯濾綠捋閭櫚膂稆褸僂"};
const unsigned char PY_mb_m[]= {"面命馬孟穆梅糜們民毛茅苗莫沒米明么每門名磨美密滿畝目嘸"};
const unsigned char PY_mb_ma[]= {"馬么麻嗎媽罵嘛碼摩抹瑪螞嘜犸嬤榪蟆"};
const unsigned char PY_mb_mai[]= {"麥脈賣買埋邁勱荬霾"};
const unsigned char PY_mb_man[]= {"滿慢曼漫蔓瞞饅蠻謾墁幔縵熳鏝顢螨鰻鞔"};
const unsigned char PY_mb_mang[]= {"忙芒盲茫氓莽邙漭硭蟒"};
const unsigned char PY_mb_mao[]= {"毛矛冒貌貿帽貓茅錨鉚卯茂袤茆峁泖瑁昴牦耄旄懋瞀蟊髦"};
const unsigned char PY_mb_me[]= {"么麼"};
const unsigned char PY_mb_mei[]= {"沒每美煤霉酶梅妹眉玫枚媒鎂昧寐媚糜謎莓嵋猸浼湄楣镅鹛袂魅"};
const unsigned char PY_mb_men[]= {"們門悶捫燜懣鍆"};
const unsigned char PY_mb_meng[]= {"孟猛蒙盟夢萌錳氓檬勐甍瞢懵朦礞虻蜢蠓艋艨"};
const unsigned char PY_mb_mi[]= {"米密迷蜜秘瞇醚靡糜謎彌覓泌冪羋謐蘼咪嘧獼汨宓弭脒禰敉糸縻麋"};
const unsigned char PY_mb_mian[]= {"面棉免綿眠冕勉娩緬沔澠湎靦眄"};
const unsigned char PY_mb_miao[]= {"苗秒描廟妙瞄藐渺喵邈緲繆杪淼眇鹋"};
const unsigned char PY_mb_mie[]= {"滅蔑乜咩蠛篾"};
const unsigned char PY_mb_min[]= {"民敏抿皿憫閩苠岷閔泯緡玟珉愍黽鳘"};
const unsigned char PY_mb_ming[]= {"命明名鳴螟盟銘冥茗溟暝瞑酩"};
const unsigned char PY_mb_miu[]= {"謬繆"};
const unsigned char PY_mb_mo[]= {"無磨沒萬末模膜摸墨摩脈莫抹冒默貉嘿摹蘑魔沫漠寞陌謨茉驀饃嫫歿鏌秣瘼耱貊貘"};
const unsigned char PY_mb_mou[]= {"某謀牟侔哞繆眸蛑蝥鍪"};
const unsigned char PY_mb_mu[]= {"畝目木母墓模幕牧姆穆姥牟拇牡暮募慕睦仫坶苜沐毪鉬"};
const unsigned char PY_mb_n[]= {"年能內那聶農你南難呢女泥哪拿念牛寧腦粘尼納嗯"};
const unsigned char PY_mb_na[]= {"那南哪拿納呢鈉吶娜捺肭镎衲"};
const unsigned char PY_mb_nai[]= {"耐哪奶乃氖奈鼐艿萘柰"};
const unsigned char PY_mb_nan[]= {"南難男喃囝囡楠腩蝻赧"};
const unsigned char PY_mb_nang[]= {"囊攮囔馕曩"};
const unsigned char PY_mb_nao[]= {"腦鬧努撓惱淖孬垴呶猱瑙硇鐃蟯"};
const unsigned char PY_mb_ne[]= {"呢哪吶訥"};
const unsigned char PY_mb_nei[]= {"內那哪餒"};
const unsigned char PY_mb_nen[]= {"嫩恁"};
const unsigned char PY_mb_neng[]= {"能"};
const unsigned char PY_mb_ni[]= {"你泥尼呢逆擬尿妮霓倪匿膩溺伲坭猊怩昵旎禰慝睨鈮鯢"};
const unsigned char PY_mb_nian[]= {"年念粘蔫拈碾攆捻釀廿埝輦黏鲇鯰"};
const unsigned char PY_mb_niang[]={"娘釀"};
const unsigned char PY_mb_niao[]= {"尿鳥溺蔦嬲脲裊"};
const unsigned char PY_mb_nie[]= {"鎳嚙涅捏聶孽鑷乜隉蘗囁顳臬躡"};
const unsigned char PY_mb_nin[]= {"您恁"};
const unsigned char PY_mb_ning[]= {"寧凝擰檸獰濘佞苧嚀甯聹"};
const unsigned char PY_mb_niu[]= {"牛扭鈕紐拗狃忸妞"};
const unsigned char PY_mb_nong[]= {"農弄濃膿儂噥"};
const unsigned char PY_mb_nou[]= {"耨"};
const unsigned char PY_mb_nu[]= {"努奴怒弩胬孥駑"};
const unsigned char PY_mb_nuan[]= {"暖"};
const unsigned char PY_mb_nuo[]= {"諾娜挪懦糯儺搦喏锘"};
const unsigned char PY_mb_nv[]= {"女恧釹衄"};
const unsigned char PY_mb_nve[]= {"虐瘧"};
const unsigned char PY_mb_o[]= {"哦喔噢歐偶鷗毆藕嘔慪耦"};
const unsigned char PY_mb_ou[]= {"區歐偶鷗毆藕嘔漚謳慪甌耦"};
const unsigned char PY_mb_p[]= {"批平判潘彭龐裴蒲配片派破排品皮噴盤偏評怕培普貧跑炮"};
const unsigned char PY_mb_pa[]= {"怕派爬帕扒耙啪趴琶葩杷鈀筢"};
const unsigned char PY_mb_pai[]= {"派排拍牌迫哌徘湃俳蒎"};
const unsigned char PY_mb_pan[]= {"判盤叛番潘攀磐盼畔胖拚爿泮袢襻蟠蹣"};
const unsigned char PY_mb_pang[]= {"旁膀磅乓龐耪胖彷滂逄螃"};
const unsigned char PY_mb_pao[]= {"跑炮刨拋泡咆袍匏狍庖脬皰"};
const unsigned char PY_mb_pei[]= {"配培陪胚呸裴賠佩沛轡帔旆锫醅霈"};
const unsigned char PY_mb_pen[]= {"噴盆湓"};
const unsigned char PY_mb_peng[]= {"碰棚蓬朋捧膨砰抨烹澎彭硼篷鵬堋嘭怦蟛"};
const unsigned char PY_mb_pi[]= {"批皮壞否辟坯脾疲砒霹披劈琵毗啤匹痞僻屁譬丕仳陂陴邳郫圮埤鼙芘擗吡噼庀淠媲紕枇甓睥羆鈹癖裨疋蚍蜱貔"};
const unsigned char PY_mb_pian[]= {"片偏便篇騙扁諞駢緶犏胼翩蹁"};
const unsigned char PY_mb_piao[]= {"票漂樸飄瓢剽莩嘌嫖驃縹殍瞟螵"};
const unsigned char PY_mb_pie[]= {"撇瞥丿苤氕"};
const unsigned char PY_mb_pin[]= {"品貧頻拼蘋聘拚姘嬪榀牝顰"};
const unsigned char PY_mb_ping[]= {"平評瓶憑蘋馮乒坪萍屏俜娉枰鲆冖"};
const unsigned char PY_mb_po[]= {"破迫坡潑繁樸泊頗婆魄粕叵陂鄱濼珀攴釙钷鈸皤笸"};
const unsigned char PY_mb_pou[]= {"剖裒掊"};
const unsigned char PY_mb_pu[]= {"普譜撲埔鋪暴葡樸蒲堡脯仆莆菩圃浦曝瀑匍噗溥濮璞氆鏷鐠蹼"};
const unsigned char PY_mb_q[]= {"起前其錢喬齊祁秦屈邱戚瞿去氣全期群情區強切取七求清確權且青"};
const unsigned char PY_mb_qi[]= {"起其氣期七器齊奇汽企漆欺旗畦啟棄歧稽緝棲戚妻凄柒沏棋崎臍祈祁騎豈乞契砌迄泣訖亟亓俟圻芑芪薺萁萋葺蘄嘁屺岐嶇汔淇騏綺琪琦杞榿槭耆欹祺憩磧頎蠐蜞綦綮蹊鰭麒"};
const unsigned char PY_mb_qia[]= {"卡恰掐洽伽葜袷髂"};
const unsigned char PY_mb_qian[]= {"前千錢淺簽遷鉛潛牽鉗纖譴扦釬仟謙乾黔遣塹嵌欠歉倩僉阡芊芡茜蕁掮岍慳慊騫搴褰繾槧犍肷愆鈐虔箬箝"};
const unsigned char PY_mb_qiang[]= {"強將槍搶墻腔嗆羌薔戕嬙檣戧熗錆鏘鏹襁蜣羥蹌"};
const unsigned char PY_mb_qiao[]= {"橋瞧殼巧敲喬蕉橇鍬悄僑鞘撬翹峭俏竅雀劁誚譙蕎嶠愀憔繰樵磽蹺鞒"};
const unsigned char PY_mb_qie[]= {"切且砌茄怯竊伽郄愜慊妾挈鍥篋"};
const unsigned char PY_mb_qin[]= {"親侵勤秦欽琴芹擒禽寢沁芩撳吣嗪噙廑溱檎鋟矜覃螓衾"};
const unsigned char PY_mb_qing[]= {"情清青輕傾請親慶氫晴卿擎氰頃苘圊檠磬蜻罄箐綮謦鯖黥"};
const unsigned char PY_mb_qiong[]= {"窮瓊邛煢穹蛩筇跫銎"};
const unsigned char PY_mb_qiu[]= {"求球秋丘仇龜邱囚酋泅俅巰犰湫逑遒楸賕虬蚯蝤裘糗鰍鼽"};
const unsigned char PY_mb_qu[]= {"去區取曲且渠屈趨驅趣蛆軀娶齲戌詘劬苣蕖蘧嶇衢闃璩覷氍朐祛磲鴝癯蛐蠼麴瞿黢"};
const unsigned char PY_mb_quan[]= {"全權圈勸泉醛顴痊拳犬券詮荃悛綣輇畎銓蜷筌鬈"};
const unsigned char PY_mb_que[]= {"確卻缺炔瘸鵲榷雀闋闕愨"};
const unsigned char PY_mb_qun[]= {"群裙逡"};
const unsigned char PY_mb_r[]= {"人如日阮榮認入任熱然容讓潤弱燃染壤繞仁溶刃仍"};
const unsigned char PY_mb_ran[]= {"然燃染冉苒蚺髯"};
const unsigned char PY_mb_rang[]= {"讓壤嚷瓤攘禳穰"};
const unsigned char PY_mb_rao[]= {"繞擾饒蕘嬈橈"};
const unsigned char PY_mb_re[]= {"熱若惹"};
const unsigned char PY_mb_ren[]= {"人認任仁刃忍壬韌妊紉仞荏葚飪軔稔衽"};
const unsigned char PY_mb_reng[]= {"仍扔"};
const unsigned char PY_mb_ri[]= {"日"};
const unsigned char PY_mb_rong[]= {"容溶榮熔融絨戎茸蓉冗嶸狨榕肜蠑"};
const unsigned char PY_mb_rou[]= {"肉揉柔糅蹂鞣"};
const unsigned char PY_mb_ru[]= {"如入儒乳茹蠕孺辱汝褥蓐薷嚅洳溽濡縟銣襦颥"};
const unsigned char PY_mb_ruan[]= {"軟阮朊"};
const unsigned char PY_mb_rui[]= {"瑞銳蕊芮蕤枘睿蚋"};
const unsigned char PY_mb_run[]= {"潤閏"};
const unsigned char PY_mb_ruo[]= {"弱若偌箬"};
const unsigned char PY_mb_s[]= {"是上時孫宋蘇沈粟施邵佘申師帥沙隋石史生說社深水所三十使事數四實少式山手"};
const unsigned char PY_mb_sa[]= {"撒薩灑卅仨挲脎颯"};
const unsigned char PY_mb_sai[]= {"塞思賽腮鰓噻"};
const unsigned char PY_mb_san[]= {"三散叁傘馓毿糝"};
const unsigned char PY_mb_sang[]= {"桑喪嗓搡磉顙"};
const unsigned char PY_mb_sao[]= {"掃梢搔騷嫂埽繅繰臊瘙鳋"};
const unsigned char PY_mb_se[]= {"色塞瑟澀嗇銫穡"};
const unsigned char PY_mb_sen[]= {"森"};
const unsigned char PY_mb_seng[]= {"僧"};
const unsigned char PY_mb_sh[]= {"數廈山刪商少召社設甚聲市師始手收守書屬術輸雙水誰睡稅順"};
const unsigned char PY_mb_sha[]= {"沙殺砂啥紗莎剎傻煞杉廈唼嗄挲歃鎩痧裟霎鯊"};
const unsigned char PY_mb_shai[]= {"色篩曬"};
const unsigned char PY_mb_shan[]= {"山單閃善珊扇陜撣苫杉刪煽衫擅贍膳汕繕柵剡訕鄯埏芟潸姍嬗騸膻禪釤疝蟮舢跚鱔"};
const unsigned char PY_mb_shang[]= {"上商傷尚湯墑賞晌裳坰绱殤熵觴"};
const unsigned char PY_mb_shao[]= {"少燒稍紹召哨梢鞘捎芍勺韶邵劭苕潲杓蛸筲艄"};
const unsigned char PY_mb_she[]= {"社設射攝舌折涉舍蛇奢賒赦懾厙佘摺猞灄歙畬麝"};
const unsigned char PY_mb_shen[]= {"深身神什伸參甚滲沈腎審申慎砷呻娠紳嬸詵諗莘葚哂瀋椹胂矧蜃"};
const unsigned char PY_mb_sheng[]= {"生勝聲省升盛繩剩圣牲乘甥嵊澠晟眚笙"};
const unsigned char PY_mb_shi[]= {"是時十使事實式識世試石什示市史師始施士勢濕適食失視室氏似蝕詩釋殖拾飾駛匙獅尸虱矢屎柿拭誓逝嗜噬仕侍恃噓峙謚塒蒔蓍弒軾貰炻鈰螫舐筮釃豕鰣鲺礻饣"};
const unsigned char PY_mb_shou[]= {"手受收首守熟授壽獸售瘦狩綬艏"};
const unsigned char PY_mb_shu[]= {"數書樹屬術輸述熟束鼠疏殊舒蔬薯叔署樞梳抒淑贖孰暑曙蜀黍戍豎墅庶漱恕俞丨倏塾菽攄沭澍姝紓毹腧殳秫"};
const unsigned char PY_mb_shua[]= {"刷耍唰"};
const unsigned char PY_mb_shuai[]= {"衰帥摔甩蟀"};
const unsigned char PY_mb_shuan[]= {"栓拴閂涮"};
const unsigned char PY_mb_shuang[]={"雙霜爽瀧孀"};
const unsigned char PY_mb_shui[]= {"水說誰睡稅"};
const unsigned char PY_mb_shun[]= {"順吮瞬舜"};
const unsigned char PY_mb_shuo[]= {"說數碩朔爍蒴搠妁槊鑠"};
const unsigned char PY_mb_si[]= {"四思死斯絲似司飼食私廁撕嘶肆寺嗣伺巳廝俟兕厶咝汜泗澌姒駟緦祀鍶鷥耜螄笥"};
const unsigned char PY_mb_song[]= {"松送宋頌聳慫訟誦凇菘崧嵩忪悚淞竦"};
const unsigned char PY_mb_sou[]= {"搜艘擻嗽叟藪嗖嗾餿溲颼瞍鎪螋"};
const unsigned char PY_mb_su[]= {"素速蘇塑縮俗訴宿肅酥粟僳溯夙謖蔌嗉愫涑簌觫穌"};
const unsigned char PY_mb_suan[]= {"算酸蒜狻"};
const unsigned char PY_mb_sui[]= {"隨穗碎雖歲尿隋綏髓遂隧祟誶荽濉邃燧眭睢"};
const unsigned char PY_mb_sun[]= {"損孫筍蓀猻飧榫隼"};
const unsigned char PY_mb_suo[]= {"所縮鎖索莎蓑梭唆瑣嗩嗦嗍娑桫挲脧羧"};
const unsigned char PY_mb_t[]= {"他同它唐譚陶湯童涂田佟提題體圖天頭通條特土團統臺她太套鐵"};
const unsigned char PY_mb_ta[]= {"他它她塔踏塌獺撻蹋拓嗒闥溻漯遢榻沓鉈趿鰨"};
const unsigned char PY_mb_tai[]= {"臺太態胎抬泰苔酞汰邰薹呔駘肽炱鈦跆鮐"};
const unsigned char PY_mb_tan[]= {"談碳探炭彈坦貪灘坍攤癱壇檀痰潭譚毯袒嘆郯澹曇忐鉭錟鐔"};
const unsigned char PY_mb_tang[]= {"堂糖唐塘湯搪棠膛倘躺淌趟燙儻帑溏瑭樘鐋鏜耥螗螳羰醣"};
const unsigned char PY_mb_tao[]= {"套討逃陶萄桃掏濤滔絳淘鼗叨啕洮韜燾饕"};
const unsigned char PY_mb_te[]= {"特忒忑慝鋱"};
const unsigned char PY_mb_teng[]= {"騰疼藤謄滕"};
const unsigned char PY_mb_ti[]= {"提題體替梯惕剔踢銻蹄啼嚏涕剃屜倜荑悌逖綈緹鵜裼醍扌"};
const unsigned char PY_mb_tian[]= {"天田添填甜佃恬舔腆掭忝闐殄畋"};
const unsigned char PY_mb_tiao[]= {"條調跳挑迢眺佻苕祧窕蜩笤糶齠鰷髫"};
const unsigned char PY_mb_tie[]= {"鐵貼帖萜餮"};
const unsigned char PY_mb_ting[]= {"聽停庭挺廷廳烴汀亭艇莛葶婷梃町鋌蜓霆"};
const unsigned char PY_mb_tong[]= {"同通統銅痛筒童桶侗恫桐酮瞳彤捅佟仝垌茼嗵峒慟潼砼"};
const unsigned char PY_mb_tou[]= {"頭投透偷鈄骰"};
const unsigned char PY_mb_tu[]= {"圖土突途徒凸涂吐兔屠禿堍荼菟釷酴"};
const unsigned char PY_mb_tuan[]= {"團湍摶彖疃圖案"};
const unsigned char PY_mb_tui[]= {"推退腿頹蛻褪忒煺"};
const unsigned char PY_mb_tun[]= {"囤褪吞屯臀氽飩暾豚"};
const unsigned char PY_mb_tuo[]= {"脫拖托妥橢舵魄鴕陀馱駝拓唾乇佗坨庹沱柝柁橐砣鉈籜酡跎鼉"};
const unsigned char PY_mb_w[]= {"為我無王汪衛魏吳韋聞烏鄔翁溫伍問外五位物委完溫萬文往武務圍誤晚"};
const unsigned char PY_mb_wa[]= {"瓦挖凹哇蛙洼娃襪佤媧膃"};
const unsigned char PY_mb_wai[]= {"外歪崴"};
const unsigned char PY_mb_wan[]= {"完萬晚彎碗頑灣挽玩蔓娩豌丸烷皖惋宛婉腕剜芄莞菀紈綰琬脘畹蜿"};
const unsigned char PY_mb_wang[]= {"往王望網忘妄亡旺芒汪枉罔尢惘輞魍"};
const unsigned char PY_mb_wei[]= {"為位委圍維唯衛微偉未威危尾謂喂味胃魏偽遺違韋畏緯巍桅惟濰葦萎蔚渭尉慰偎諉隈隗圩葳薇囗幃帷崴嵬猥猬闈溈洧潿逶娓瑋韙軎煒煨痿艉鮪"};
const unsigned char PY_mb_wen[]= {"問溫文穩紋聞蚊瘟吻紊刎閿汶璺雯亠"};
const unsigned char PY_mb_weng[]= {"嗡翁甕蓊蕹"};
const unsigned char PY_mb_wo[]= {"我握窩蝸渦沃撾臥斡倭萵喔幄渥肟硪齷"};
const unsigned char PY_mb_wu[]= {"無五物武務誤伍舞污悟霧午惡屋烏吳亡誣鎢巫嗚蕪梧吾毋捂侮塢戊晤勿兀仵阢鄔圬芴唔廡憮忤浯寤迕嫵婺騖杌牾於焐鵡鶩痦蜈鋈鼯"};
const unsigned char PY_mb_x[]= {"學下行許徐邢蕭肖薛熊解項習冼小線性新些想心向相系席現西修象先形"};
const unsigned char PY_mb_xi[]= {"系席西習細吸析喜洗銑稀戲隙希息襲錫烯犧悉惜溪臘棲昔熙硒矽晰嘻膝夕熄汐犀檄媳僖兮隰郗茜菥葸蓰奚唏徙餼鬩浠淅屣嬉璽樨曦覡欷歙熹禊禧皙穸裼蜥螅蟋舄舾羲粞翕醯蹊鼷"};
const unsigned char PY_mb_xia[]= {"下夏嚇狹霞唬瞎蝦匣轄暇峽俠廈呷狎遐瑕柙硤瘕罅黠"};
const unsigned char PY_mb_xian[]= {"線現先縣限見顯鮮獻險陷憲纖洗掀弦銑腺锨仙咸賢銜舷閑涎嫌餡羨冼莧薟蘚峴獫暹嫻氙燹祆鷴癇蜆筅秈酰跣躚霰"};
const unsigned char PY_mb_xiang[]= {"想向相象響項箱鄉降香像詳橡享湘廂鑲襄翔祥巷薌葙餉庠驤緗蟓鲞饗"};
const unsigned char PY_mb_xiao[]= {"小消削效笑校銷硝蕭肖孝霄哮囂宵淆曉嘯嘵崤瀟逍驍綃梟枵蛸筱簫魈"};
const unsigned char PY_mb_xie[]= {"些解寫斜謝協械葉血卸屑鞋歇邪脅蟹泄瀉契楔蝎挾攜諧懈偕褻勰燮薤擷獬廨渫瀣邂紲纈榭榍頡躞"};
const unsigned char PY_mb_xin[]= {"新心信鋅芯辛尋欣薪忻釁囟馨昕歆鐔鑫"};
const unsigned char PY_mb_xing[]= {"行性形型星興省醒姓幸腥猩惺刑邢杏陘荇滎擤餳悻硎"};
const unsigned char PY_mb_xiong[]= {"雄胸兄兇熊匈洶芎"};
const unsigned char PY_mb_xiu[]= {"修銹休袖秀朽宿臭羞嗅繡咻岫饈庥溴鵂貅髹"};
const unsigned char PY_mb_xu[]= {"續許須需序虛絮畜敘蓄緒徐墟戌噓酗旭恤婿吁詡勖圩蓿洫滸溆頊栩煦砉盱胥糈醑"};
const unsigned char PY_mb_xuan[]= {"選旋宣懸玄券軒喧癬眩絢儇諼萱揎泫渲漩璇楦暄炫煊碹鉉鏇痃"};
const unsigned char PY_mb_xue[]= {"學血削雪穴靴薛謔噱澩踅鱈"};
const unsigned char PY_mb_xun[]= {"訓旬迅訊尋循巡葷浚勛熏詢馴殉汛遜巽郇塤荀蕈薰峋徇獯恂洵潯曛窨醺鱘彐"};
const unsigned char PY_mb_y[]= {"一有楊嚴余閻姚顏袁燕俞岳惲樂葉羊尹尤用要以于也樣義與由壓員月意又運原油驗"};
const unsigned char PY_mb_ya[]= {"壓亞呀牙芽雅蚜鴨匹押鴉丫崖衙涯啞訝伢埡揠岈迓婭琊椏氬砑睚痖"};
const unsigned char PY_mb_yan[]= {"驗研嚴顏眼言鹽演巖沿煙延掩宴炎燕衍鉛焉咽閹淹蜒閻奄艷堰厭硯雁唁彥焰諺殷厴贗剡儼偃兗讞阽郾鄢芫菸崦懨閆閼湮滟妍嫣琰檐晏胭腌焱罨筵釅魘饜鼴"};
const unsigned char PY_mb_yang[]= {"樣養氧揚洋陽羊秧央楊仰殃鴦佯瘍癢漾徉怏泱煬烊恙蛘鞅"};
const unsigned char PY_mb_yao[]= {"要藥約搖腰咬邀耀陶僥瘧妖瑤堯遙窯謠姚舀鑰夭爻吆崾徭幺珧杳軺曜肴銚鷂窈繇鰩"};
const unsigned char PY_mb_ye[]= {"也業頁葉液夜野爺冶邪嘩咽椰噎耶掖曳腋拽靨謁鄴揶曄燁铘"};
const unsigned char PY_mb_yi[]= {"一以義意已移醫議依易乙藝益異宜儀億遺伊役衣疑亦誼翼譯抑憶疫壹揖銥頤夷胰沂姨彝椅蟻倚矣邑屹臆逸肄裔毅溢詣翌繹刈劓仡佚佾詒圯埸懿苡荑薏弈奕挹弋囈咦咿嗌噫嶧嶷猗飴懌怡悒漪迤驛縊殪軼貽欹旖熠眙釔鎰鐿痍瘞癔翊蜴艤羿翳酏黟衤"};
const unsigned char PY_mb_yin[]= {"因引陰印音銀煙隱飲蔭茵殷姻吟淫寅尹胤鄞圻垠堙茚吲喑狺夤洇湮氤銦癮窨蚓霪齦"};
const unsigned char PY_mb_ying[]= {"應影硬營英映迎櫻嬰鷹纓瑩螢熒蠅贏盈穎嬴郢塋滎鶯縈鎣攖嚶膺瀅瀠瀛瑛瓔楹媵鸚癭潁罌"};
const unsigned char PY_mb_yo[]= {"育喲唷"};
const unsigned char PY_mb_yong[]= {"用勇永擁涌蛹庸傭臃癰雍踴詠泳恿俑壅墉喁慵邕鏞甬鳙饔"};
const unsigned char PY_mb_you[]= {"有由又油右友優幼游尤誘猶幽悠憂郵鈾酉佑釉卣攸侑莠莜蕕尢呦囿宥柚猷牖銪疣蚰蚴蝣蝤繇魷黝鼬"};
const unsigned char PY_mb_yu[]= {"于與育魚雨玉余遇預域語愈漁予羽愚御谷欲宇蔚尉迂淤盂榆虞輿俞逾愉渝隅娛嶼禹芋郁吁喻峪獄譽浴寓裕豫馭粥禺毓傴俁諛諭萸菀蕷揄圄圉崳狳飫馀庾閾鬻嫗妤紆瑜昱覦腴腧歟於煜熨燠聿鈺鵒鷸瘐瘀窬窳蜮蝓竽臾舁雩齬肀"};
const unsigned char PY_mb_yuan[]= {"員原圓源元遠愿院緣援園怨鴛淵冤垣袁轅猿苑垸塬芫掾圜沅媛瑗櫞爰眢鳶螈箢黿"};
const unsigned char PY_mb_yue[]= {"月說越約樂躍曰閱鑰岳粵悅龠瀹櫟樾刖鉞"};
const unsigned char PY_mb_yun[]= {"運員云勻均允孕耘鄖隕蘊醞暈韻鄆蕓狁惲慍紜韞殞昀氳熨"};
const unsigned char PY_mb_z[]= {"在這主中張章趙曾鄭周鄒朱種著祝甄莊宗詹臧祖左展爭戰作正之制重組治只子自質指"};
const unsigned char PY_mb_za[]= {"雜扎咱匝砸咋咂"};
const unsigned char PY_mb_zai[]= {"在再載栽災仔哉宰崽甾"};
const unsigned char PY_mb_zan[]= {"贊咱暫攢拶瓚昝簪糌趲鏨"};
const unsigned char PY_mb_zang[]= {"藏臟葬贓奘駔臧"};
const unsigned char PY_mb_zao[]= {"造早遭燥鑿糟棗皂藻澡蚤躁噪灶唣"};
const unsigned char PY_mb_ze[]= {"則擇責側澤咋仄賾嘖幘迮昃笮簀舴"};
const unsigned char PY_mb_zei[]= {"賊"};
const unsigned char PY_mb_zen[]= {"怎譖"};
const unsigned char PY_mb_zeng[]= {"增曾綜憎贈繒甑罾锃"};
const unsigned char PY_mb_zh[]= {"扎炸摘債戰展長張章鐘著照找這真爭正政之制治只中周州主住抓轉專撰賺裝狀準"};
const unsigned char PY_mb_zha[]= {"查扎炸閘鍘軋渣蠟喳札眨柵榨咋乍詐柞揸吒咤哳喋楂砟痄蚱齄"};
const unsigned char PY_mb_zhai[]= {"寨側擇摘窄齋翟祭宅債砦瘵"};
const unsigned char PY_mb_zhan[]= {"戰展站占粘顫瞻氈詹沾盞斬輾嶄蘸棧湛綻譫搌旃"};
const unsigned char PY_mb_zhang[]={"長張章掌仗障脹漲賬樟彰漳杖丈帳瘴仉鄣幛嶂獐嫜璋蟑"};
const unsigned char PY_mb_zhao[]= {"著照找招朝召趙爪罩沼兆嘲昭肇詔啁棹釗笊"};
const unsigned char PY_mb_zhe[]= {"這著者折哲浙遮蟄轍鍺蔗謫摺柘輒磔鷓褶蜇赭"};
const unsigned char PY_mb_zhen[]= {"真針陣鎮振震珍診斟甄砧臻貞偵枕疹圳蓁湞溱縝楨椹榛軫賑胗朕禎畛稹鴆箴"};
const unsigned char PY_mb_zheng[]= {"爭正政整證征蒸癥丁鄭掙睜猙怔拯幀諍崢徵鉦錚箏"};
const unsigned char PY_mb_zhi[]= {"之制治只質指直支織止至置志值知識執職植紙致枝殖脂智氏肢秩址滯汁芝吱蜘侄趾旨摯擲幟峙稚炙痔窒卮陟郅埴芷摭帙徵忮彘咫騭櫛枳梔桎軹輊贄胝膣祉祗黹雉鷙痣蛭縶酯跖躓躑豸觶"};
const unsigned char PY_mb_zhong[]= {"中種重眾鐘終忠腫仲盅衷冢忪鍾螽舯踵"};
const unsigned char PY_mb_zhou[]= {"軸周洲州皺驟舟謅粥肘帚咒宙晝荮啁妯紂縐胄碡籀繇酎"};
const unsigned char PY_mb_zhu[]= {"主注著住助豬朱鑄屬株筑柱術駐逐祝竹貯珠諸蛛誅燭煮拄矚囑蛀佇侏邾茱洙渚潴杼櫧橥炷銖疰瘃褚竺箸舳翥躅麈"};
const unsigned char PY_mb_zhua[]= {"抓爪撾"};
const unsigned char PY_mb_zhuai[]= {"轉曳拽嘬"};
const unsigned char PY_mb_zhuan[]= {"轉專傳磚撰賺篆囀饌沌顓"};
const unsigned char PY_mb_zhuang[]={"裝狀壯莊撞幢樁妝僮奘"};
const unsigned char PY_mb_zhui[]= {"追錐椎贅墜綴惴騅縋"};
const unsigned char PY_mb_zhun[]= {"準屯諄肫窀"};
const unsigned char PY_mb_zhuo[]= {"著著捉桌繳拙卓琢茁酌啄灼濁倬諑擢浞涿濯棹焯禚斫鐲"};
const unsigned char PY_mb_zi[]= {"子自資字紫仔籽姿吱茲咨滋淄孜滓漬諮茈呲嵫姊孳緇梓輜貲恣眥錙秭耔笫粢趑觜訾齜鯔髭"};
const unsigned char PY_mb_zong[]= {"總縱宗綜棕鬃蹤傯樅腙粽"};
const unsigned char PY_mb_zou[]= {"走鄒奏揍諏陬鄹騶鯫"};
const unsigned char PY_mb_zu[]= {"組族足阻祖租卒詛俎菹鏃"};
const unsigned char PY_mb_zuan[]= {"鉆賺纂攥纘躦"};
const unsigned char PY_mb_zui[]= {"最罪嘴堆咀醉蕞"};
const unsigned char PY_mb_zun[]= {"尊遵撙樽鱒"};
const unsigned char PY_mb_zuo[]= {"作做左座坐昨撮鑿搓琢佐柞阼唑嘬怍胙祚笮"};我們將這些組合稱之為碼表,然后將這些碼表和其對應的數字串對應起來,組成一個拼音索引表,如下所示:
const py_index py_index3[]=
{
{"","",(u8*)PY_mb_space},
{"2","a",(u8*)PY_mb_a},
……
{"586","lun",(u8*)PY_mb_lun},
{"586","luo",(u8*)PY_mb_luo},
{"586","kun",(u8*)PY_mb_kun},
{"586","kuo",(u8*)PY_mb_kuo},
……
{"94664","zhong",(u8*)PY_mb_zhong},
{"94824","zhuai",(u8*)PY_mb_zhuai},
{"94826","zhuan",(u8*)PY_mb_zhuan},
}/*符號輸入查詢碼表*/
/*英文輸入查詢碼表*/
typedef struct
{
const char* key;
const char* Letter;
}T9EN_IDX;
const T9EN_IDX t9EN_index[] = {
{"2","abcABC"},
{"3","defDEF"},
{"4","ghiGHI"},
{"5","jklJKL"},
{"6","mnoMNO"},
{"7","pqrsPQRS"},
{"8","tuvTUV"},
{"9","wxyzWXYZ"}
};
/*拼音輸入法查詢碼表*/
typedef struct
{
const char *T9;
const char *PY;
const unsigned char *MB;
}T9PY_IDX;
const T9PY_IDX t9PY_index[] ={
{"2","a",PY_mb_a},
{"2","b",PY_mb_b},
{"2","c",PY_mb_c},
{"3","d",PY_mb_d},
{"3","e",PY_mb_e},
{"3","f",PY_mb_f},
{"4","g",PY_mb_g},
{"4","h",PY_mb_h},
{"5","j",PY_mb_j},
{"5","k",PY_mb_k},
{"5","l",PY_mb_l},
{"6","m",PY_mb_m},
{"6","n",PY_mb_n},
{"6","o",PY_mb_o},
{"7","p",PY_mb_p},
{"7","q",PY_mb_q},
{"7","r",PY_mb_r},
{"7","s",PY_mb_s},
{"8","t",PY_mb_t},
{"9","w",PY_mb_w},
{"9","x",PY_mb_x},
{"9","y",PY_mb_y},
{"9","z",PY_mb_z},
{"22","ba",PY_mb_ba},
{"22","ca",PY_mb_ca},
{"23","ce",PY_mb_ce},
{"23","be",PY_mb_bei},
{"24","ai",PY_mb_ai},
{"24","bi",PY_mb_bi},
{"24","ch",PY_mb_ch},
{"24","ci",PY_mb_ci},
{"26","co",PY_mb_cou},
{"26","bo",PY_mb_bo},
{"26","an",PY_mb_an},
{"26","ao",PY_mb_ao},
{"28","bu",PY_mb_bu},
{"28","cu",PY_mb_cu},
{"32","da",PY_mb_da},
{"32","fa",PY_mb_fa},
{"33","de",PY_mb_de},
{"33","fe",PY_mb_fei},
{"34","di",PY_mb_di},
{"34","ei",PY_mb_ei},
{"36","en",PY_mb_en},
{"36","fo",PY_mb_fo},
{"37","er",PY_mb_er},
{"36","do",PY_mb_dou},
{"38","du",PY_mb_du},
{"38","fu",PY_mb_fu},
{"42","ga",PY_mb_ga},
{"42","ha",PY_mb_ha},
{"43","ge",PY_mb_ge},
{"43","he",PY_mb_he},
{"46","go",PY_mb_gou},
{"46","ho",PY_mb_hou},
{"48","gu",PY_mb_gu},
{"48","hu",PY_mb_hu},
{"52","ka",PY_mb_ka},
{"52","la",PY_mb_la},
{"53","le",PY_mb_le},
{"53","ke",PY_mb_ke},
{"54","ji",PY_mb_ji},
{"54","li",PY_mb_li},
{"56","ko",PY_mb_kou},
{"56","lo",PY_mb_lo},
{"58","lu",PY_mb_lu},
{"58","lv",PY_mb_lv},
{"58","ju",PY_mb_ju},
{"58","ku",PY_mb_ku},
{"62","ma",PY_mb_ma},
{"62","na",PY_mb_na},
{"63","me",PY_mb_me},
{"63","ne",PY_mb_ne},
{"64","mi",PY_mb_mi},
{"64","ni",PY_mb_ni},
{"66","mo",PY_mb_mo},
{"66","no",PY_mb_nou},
{"68","mu",PY_mb_mu},
{"68","nu",PY_mb_nu},
{"68","nv",PY_mb_nv},
{"68","ou",PY_mb_ou},
{"72","pa",PY_mb_pa},
{"72","pe",PY_mb_pei},
{"72","ra",PY_mb_ran},
{"72","sa",PY_mb_sa},
{"73","re",PY_mb_re},
{"73","se",PY_mb_se},
{"74","pi",PY_mb_pi},
{"74","qi",PY_mb_qi},
{"74","ri",PY_mb_ri},
{"74","sh",PY_mb_sh},
{"74","si",PY_mb_si},
{"76","so",PY_mb_sou},
{"76","po",PY_mb_po},
{"76","ro",PY_mb_rou},
{"78","pu",PY_mb_pu},
{"78","qu",PY_mb_qu},
{"78","ru",PY_mb_ru},
{"78","su",PY_mb_su},
{"82","ta",PY_mb_ta},
{"83","te",PY_mb_te},
{"84","ti",PY_mb_ti},
{"86","to",PY_mb_tou},
{"88","tu",PY_mb_tu},
{"92","wa",PY_mb_wa},
{"92","ya",PY_mb_ya},
{"92","za",PY_mb_za},
{"93","ze",PY_mb_ze},
{"93","ye",PY_mb_ye},
{"94","yi",PY_mb_yi},
{"94","xi",PY_mb_xi},
{"94","zh",PY_mb_zh},
{"94","zi",PY_mb_zi},
{"96","zo",PY_mb_zou},
{"96","wo",PY_mb_wo},
{"96","yo",PY_mb_yo},
{"98","wu",PY_mb_wu},
{"98","xu",PY_mb_xu},
{"98","yu",PY_mb_yu},
{"98","zu",PY_mb_zu},
{"224","bai",PY_mb_bai},
{"224","cai",PY_mb_cai},
{"226","can",PY_mb_can},
{"226","cao",PY_mb_cao},
{"226","ban",PY_mb_ban},
{"226","bao",PY_mb_bao},
{"234","bei",PY_mb_bei},
{"236","ben",PY_mb_ben},
{"236","cen",PY_mb_cen},
{"242","bia",PY_mb_bian},
{"242","cha",PY_mb_cha},
{"243","che",PY_mb_che},
{"243","bie",PY_mb_bie},
{"244","chi",PY_mb_chi},
{"246","bin",PY_mb_bin},
{"246","cho",PY_mb_chou},
{"248","chu",PY_mb_chu},
{"264","ang",PY_mb_ang},
{"266","con",PY_mb_cong},
{"268","cou",PY_mb_cou},
{"282","cua",PY_mb_cuan},
{"284","cui",PY_mb_cui},
{"286","cun",PY_mb_cun},
{"286","cuo",PY_mb_cuo},
{"324","dai",PY_mb_dai},
{"326","dan",PY_mb_dan},
{"326","dao",PY_mb_dao},
{"326","fan",PY_mb_fan},
{"334","fei",PY_mb_fei},
{"336","fen",PY_mb_fen},
{"336","den",PY_mb_deng},
{"342","dia",PY_mb_dia},
{"343","die",PY_mb_die},
{"346","din",PY_mb_ding},
{"348","diu",PY_mb_diu},
{"366","don",PY_mb_dong},
{"368","dou",PY_mb_dou},
{"368","fou",PY_mb_fou},
{"382","dua",PY_mb_duan},
{"384","dui",PY_mb_dui},
{"386","dun",PY_mb_dun},
{"386","duo",PY_mb_duo},
{"424","gai",PY_mb_gai},
{"424","hai",PY_mb_hai},
{"426","han",PY_mb_han},
{"426","gan",PY_mb_gan},
{"426","gao",PY_mb_gao},
{"426","hao",PY_mb_hao},
{"434","hei",PY_mb_hei},
{"434","gei",PY_mb_gei},
{"436","gen",PY_mb_gen},
{"436","hen",PY_mb_hen},
{"466","gon",PY_mb_gong},
{"466","hon",PY_mb_hong},
{"468","gou",PY_mb_gou},
{"468","hou",PY_mb_hou},
{"482","hua",PY_mb_hua},
{"482","gua",PY_mb_gua},
{"484","gui",PY_mb_gui},
{"484","hui",PY_mb_hui},
{"486","hun",PY_mb_hun},
{"486","huo",PY_mb_huo},
{"486","gun",PY_mb_gun},
{"486","guo",PY_mb_guo},
{"524","kai",PY_mb_kai},
{"524","lai",PY_mb_lai},
{"526","lan",PY_mb_lan},
{"526","kan",PY_mb_kan},
{"526","kao",PY_mb_kao},
{"526","lao",PY_mb_lao},
{"534","lei",PY_mb_lei},
{"536","len",PY_mb_leng},
{"536","ken",PY_mb_ken},
{"542","jia",PY_mb_jia},
{"542","lia",PY_mb_lia},
{"543","jie",PY_mb_jie},
{"543","lie",PY_mb_lie},
{"546","lin",PY_mb_lin},
{"546","jin",PY_mb_jin},
{"546","jio",PY_mb_jiong},
{"548","jiu",PY_mb_jiu},
{"548","liu",PY_mb_liu},
{"566","lon",PY_mb_long},
{"566","kon",PY_mb_kong},
{"568","kou",PY_mb_kou},
{"568","lou",PY_mb_lou},
{"582","lua",PY_mb_luan},
{"582","kua",PY_mb_kua},
{"582","jua",PY_mb_juan},
{"583","jue",PY_mb_jue},
{"583","lue",PY_mb_lue},
{"584","kui",PY_mb_kui},
{"586","lun",PY_mb_lun},
{"586","luo",PY_mb_luo},
{"586","kun",PY_mb_kun},
{"586","kuo",PY_mb_kuo},
{"586","jun",PY_mb_jun},
{"624","mai",PY_mb_mai},
{"624","nai",PY_mb_nai},
{"626","nan",PY_mb_nan},
{"626","man",PY_mb_man},
{"626","mao",PY_mb_mao},
{"626","nao",PY_mb_nao},
{"634","nei",PY_mb_nei},
{"634","mei",PY_mb_mei},
{"636","nen",PY_mb_nen},
{"636","men",PY_mb_men},
{"642","mia",PY_mb_mian},
{"642","nia",PY_mb_nian},
{"643","mie",PY_mb_mie},
{"643","nie",PY_mb_nie},
{"646","nin",PY_mb_nin},
{"646","min",PY_mb_min},
{"648","miu",PY_mb_miu},
{"648","niu",PY_mb_niu},
{"666","non",PY_mb_nong},
{"668","mou",PY_mb_mou},
{"668","nou",PY_mb_nou},
{"682","nua",PY_mb_nuan},
{"683","nve",PY_mb_nve},
{"686","nuo",PY_mb_nuo},
{"724","pai",PY_mb_pai},
{"734","pei",PY_mb_pei},
{"724","sai",PY_mb_sai},
{"726","san",PY_mb_san},
{"726","pan",PY_mb_pan},
{"726","pao",PY_mb_pao},
{"736","pen",PY_mb_pen},
{"726","ran",PY_mb_ran},
{"726","rao",PY_mb_rao},
{"726","sao",PY_mb_sao},
{"736","sen",PY_mb_sen},
{"736","ren",PY_mb_ren},
{"742","pia",PY_mb_pian},
{"742","qia",PY_mb_qia},
{"742","sha",PY_mb_sha},
{"743","pie",PY_mb_pie},
{"743","qie",PY_mb_qie},
{"743","she",PY_mb_she},
{"744","shi",PY_mb_shi},
{"748","shu",PY_mb_shu},
{"746","qin",PY_mb_qin},
{"746","pin",PY_mb_pin},
{"746","qio",PY_mb_qiong},
{"746","sho",PY_mb_shou},
{"748","qiu",PY_mb_qiu},
{"766","ron",PY_mb_rong},
{"768","pou",PY_mb_pou},
{"768","rou",PY_mb_rou},
{"766","son",PY_mb_song},
{"768","sou",PY_mb_sou},
{"782","sua",PY_mb_suan},
{"782","rua",PY_mb_ruan},
{"782","qua",PY_mb_quan},
{"783","que",PY_mb_que},
{"784","rui",PY_mb_rui},
{"784","sui",PY_mb_sui},
{"786","sun",PY_mb_sun},
{"786","suo",PY_mb_suo},
{"786","run",PY_mb_run},
{"786","ruo",PY_mb_ruo},
{"786","qun",PY_mb_qun},
{"824","tai",PY_mb_tai},
{"826","tan",PY_mb_tan},
{"826","tao",PY_mb_tao},
{"836","ten",PY_mb_teng},
{"842","tia",PY_mb_tian},
{"843","tie",PY_mb_tie},
{"846","tin",PY_mb_ting},
{"866","ton",PY_mb_tong},
{"868","tou",PY_mb_tou},
{"882","tua",PY_mb_tuan},
{"884","tui",PY_mb_tui},
{"886","tun",PY_mb_tun},
{"886","tuo",PY_mb_tuo},
{"924","wai",PY_mb_wai},
{"924","zai",PY_mb_zai},
{"926","zan",PY_mb_zan},
{"926","wan",PY_mb_wan},
{"926","yan",PY_mb_yan},
{"926","yao",PY_mb_yao},
{"926","zao",PY_mb_zao},
{"934","zei",PY_mb_zei},
{"934","wei",PY_mb_wei},
{"936","zen",PY_mb_zen},
{"936","wen",PY_mb_wen},
{"942","xia",PY_mb_xia},
{"942","zha",PY_mb_zha},
{"943","xie",PY_mb_xie},
{"943","zhe",PY_mb_zhe},
{"944","zhi",PY_mb_zhi},
{"946","zho",PY_mb_zhou},
{"946","xin",PY_mb_xin},
{"946","xio",PY_mb_xiong},
{"946","yin",PY_mb_yin},
{"948","xiu",PY_mb_xiu},
{"948","zhu",PY_mb_zhu},
{"966","yon",PY_mb_yong},
{"966","zon",PY_mb_zong},
{"968","you",PY_mb_you},
{"968","zou",PY_mb_zou},
{"982","zua",PY_mb_zuan},
{"982","yua",PY_mb_yuan},
{"982","xua",PY_mb_xuan},
{"983","xue",PY_mb_xue},
{"983","yue",PY_mb_yue},
{"984","zui",PY_mb_zui},
{"986","zun",PY_mb_zun},
{"986","zuo",PY_mb_zuo},
{"986","yun",PY_mb_yun},
{"986","xun",PY_mb_xun},
{"2264","bang",PY_mb_bang},
{"2364","beng",PY_mb_beng},
{"2426","bian",PY_mb_bian},
{"2426","biao",PY_mb_biao},
{"2464","bing",PY_mb_bing},
{"2264","cang",PY_mb_cang},
{"2364","ceng",PY_mb_ceng},
{"2424","chai",PY_mb_chai},
{"2426","chan",PY_mb_chan},
{"2426","chao",PY_mb_chao},
{"2436","chen",PY_mb_chen},
{"2466","chon",PY_mb_chong},
{"2468","chou",PY_mb_chou},
{"2482","chua",PY_mb_chuai},
{"2484","chui",PY_mb_chui},
{"2486","chun",PY_mb_chun},
{"2486","chuo",PY_mb_chuo},
{"2664","cong",PY_mb_cong},
{"2826","cuan",PY_mb_cuan},
{"3264","dang",PY_mb_dang},
{"3264","fang",PY_mb_fang},
{"3364","feng",PY_mb_feng},
{"3364","deng",PY_mb_deng},
{"3426","dian",PY_mb_dian},
{"3426","diao",PY_mb_diao},
{"3464","ding",PY_mb_ding},
{"3664","dong",PY_mb_dong},
{"3826","duan",PY_mb_duan},
{"4264","gang",PY_mb_gang},
{"4364","geng",PY_mb_geng},
{"4664","gong",PY_mb_gong},
{"4824","guai",PY_mb_guai},
{"4826","guan",PY_mb_guan},
{"4264","hang",PY_mb_hang},
{"4364","heng",PY_mb_heng},
{"4664","hong",PY_mb_hong},
{"4824","huai",PY_mb_huai},
{"4826","huan",PY_mb_huan},
{"5264","kang",PY_mb_kang},
{"5264","lang",PY_mb_lang},
{"5364","leng",PY_mb_leng},
{"5364","keng",PY_mb_keng},
{"5426","lian",PY_mb_lian},
{"5426","liao",PY_mb_liao},
{"5426","jian",PY_mb_jian},
{"5426","jiao",PY_mb_jiao},
{"5464","jing",PY_mb_jing},
{"5464","ling",PY_mb_ling},
{"5466","jion",PY_mb_jiong},
{"5664","long",PY_mb_long},
{"5664","kong",PY_mb_kong},
{"5824","kuai",PY_mb_kuai},
{"5826","kuan",PY_mb_kuan},
{"5826","luan",PY_mb_luan},
{"5826","juan",PY_mb_juan},
{"6264","mang",PY_mb_mang},
{"6264","nang",PY_mb_nang},
{"6364","meng",PY_mb_meng},
{"6364","neng",PY_mb_neng},
{"6426","mian",PY_mb_mian},
{"6426","miao",PY_mb_miao},
{"6426","nian",PY_mb_nian},
{"6426","niao",PY_mb_niao},
{"6464","ming",PY_mb_ming},
{"6464","ning",PY_mb_ning},
{"6664","nong",PY_mb_nong},
{"6826","nuan",PY_mb_nuan},
{"7264","pang",PY_mb_pang},
{"7364","peng",PY_mb_peng},
{"7264","rang",PY_mb_rang},
{"7264","sang",PY_mb_sang},
{"7364","seng",PY_mb_seng},
{"7364","reng",PY_mb_reng},
{"7424","shai",PY_mb_shai},
{"7426","shan",PY_mb_shan},
{"7426","shao",PY_mb_shao},
{"7426","pian",PY_mb_pian},
{"7426","piao",PY_mb_piao},
{"7426","qian",PY_mb_qian},
{"7426","qiao",PY_mb_qiao},
{"7436","shen",PY_mb_shen},
{"7464","ping",PY_mb_ping},
{"7464","qing",PY_mb_qing},
{"7466","qion",PY_mb_qiong},
{"7468","shou",PY_mb_shou},
{"7482","shua",PY_mb_shua},
{"7484","shui",PY_mb_shui},
{"7486","shun",PY_mb_shun},
{"7486","shuo",PY_mb_shuo},
{"7664","rong",PY_mb_rong},
{"7664","song",PY_mb_song},
{"7826","suan",PY_mb_suan},
{"7826","quan",PY_mb_quan},
{"7826","ruan",PY_mb_ruan},
{"8264","tang",PY_mb_tang},
{"8364","teng",PY_mb_teng},
{"8426","tian",PY_mb_tian},
{"8426","tiao",PY_mb_tiao},
{"8464","ting",PY_mb_ting},
{"8664","tong",PY_mb_tong},
{"8826","tuan",PY_mb_tuan},
{"9264","wang",PY_mb_wang},
{"9264","zang",PY_mb_zang},
{"9264","yang",PY_mb_yang},
{"9364","weng",PY_mb_weng},
{"9364","zeng",PY_mb_zeng},
{"9424","zhai",PY_mb_zhai},
{"9426","zhan",PY_mb_zhan},
{"9426","zhao",PY_mb_zhao},
{"9426","xian",PY_mb_xian},
{"9426","xiao",PY_mb_xiao},
{"9436","zhen",PY_mb_zhen},
{"9464","xing",PY_mb_xing},
{"9464","ying",PY_mb_ying},
{"9466","zhon",PY_mb_zhong},
{"9468","zhou",PY_mb_zhou},
{"9482","zhua",PY_mb_zhua},
{"9484","zhui",PY_mb_zhui},
{"9486","zhun",PY_mb_zhun},
{"9486","zhuo",PY_mb_zhuo},
{"9466","xion",PY_mb_xiong},
{"9664","yong",PY_mb_yong},
{"9664","zong",PY_mb_zong},
{"9826","yuan",PY_mb_yuan},
{"9826","xuan",PY_mb_xuan},
{"9826","zuan",PY_mb_zuan},
{"94264","xiang",PY_mb_xiang},
{"94264","zhang",PY_mb_zhang},
{"94364","zheng",PY_mb_zheng},
{"94664","xiong",PY_mb_xiong},
{"94664","zhong",PY_mb_zhong},
{"94824","zhuai",PY_mb_zhuai},
{"94826","zhuan",PY_mb_zhuan},
{"24264","chang",PY_mb_chang},
{"24364","cheng",PY_mb_cheng},
{"24664","chong",PY_mb_chong},
{"24824","chuai",PY_mb_chuai},
{"24826","chuan",PY_mb_chuan},
{"48264","guang",PY_mb_guang},
{"48264","huang",PY_mb_huang},
{"54264","jiang",PY_mb_jiang},
{"54264","liang",PY_mb_liang},
{"54664","jiong",PY_mb_jiong},
{"58264","kuang",PY_mb_kuang},
{"64264","niang",PY_mb_niang},
{"74264","qiang",PY_mb_qiang},
{"74264","shang",PY_mb_shang},
{"74364","sheng",PY_mb_sheng},
{"74664","qiong",PY_mb_qiong},
{"74824","shuai",PY_mb_shuai},
{"74826","shuan",PY_mb_shuan},
{"248264","chuang",PY_mb_chuang},
{"748264","shuang",PY_mb_shuang},
{"948264","zhuang",PY_mb_zhuang},
{"","",PY_mb_space}
};其中py_index 是一個結構體,定義如下:
typedef struct
{
u8 *py_input; //輸入的字符串
u8 *py; //對應的拼音
u8 *pymb; //碼表
}py_index;py_input是與拼音對應的數字串,比如“94824 ”。py是與py_input 數字串對應的拼音,如果py_input=" 94824 ”,那么py 就是“zhuai ”。最后pymb,就是我們前面說到的碼表。注意,一個數字串可以對應多個拼音,也可以對應多個碼表。
在有了這個拼音索引表(py_index3)之后,我們只需要將輸入的數字串和py_index3 索引 表里面所有成員的py_input 對比,將所有完全匹配的情況記錄下來(例如記錄在py_index**matchlist中),然后由用戶選擇可能的拼音組成(假設有多個匹配的項目),再選擇對應的漢字,即完成一次漢字輸入。當然還可能是找遍了索引表,也沒有發現一個完全符合要求的成員,那么我們會統計匹配數最多的情況,作為最佳結果,反饋給用戶。比如,用戶輸入“323”,找不到完全匹配的情況,那么我們就將能和“32”匹配的結果返回給用戶。這樣,用戶還是可以得到輸入結果,同時還可以知道輸入有問題,提示用戶需要檢查輸入是否正確。
一個完整的T9 拼音輸入步驟(過程):
1)輸入拼音數字串
我們用到的T9 拼音輸入法的核心思想就是對比用戶輸入的拼音數字串,所以必 須先由用戶輸入拼音數字串。
2 )在拼音索引表里面查找和輸入字符串匹配的項,并記錄
在得到用戶輸入的拼音數字串之后,在拼音索引表里面查找所有匹配的項目,如果有 完全匹配的項目,就全部記錄下來,如果沒有完全匹配的項目,則記錄匹配情況最好的一個項目。
3 )顯示匹配清單里面所有可能的漢字,供用戶選擇.
將匹配項目的拼音和對應的漢字顯示出來,供用戶選擇。如果有多個匹配項(一個數字串對應多個拼音的情況),則用戶還可以選擇拼音。
4 )用戶選擇匹配項,并選擇對應的漢字.
用戶對匹配的拼音和漢字進行選擇,選中其真正想輸入的拼音和漢字,實現一次拼音輸入。
以上4 個步驟,就可以實現一個簡單的T9 漢字拼音輸入法。
// 比較兩個字符串的匹配情況
//返回值:0xff,表示完全匹配.
// 其他,匹配的字符數
u8 str_match(u8*str1,u8*str2)
{
u8 i=0;
while(1)
{
if(*str1!=*str2)break; //部分匹配
if(*str1=='\0'){i=0XFF;break;}//完全匹配
i++; str1++; str2++;
}
return i;//兩個字符串相等
}
//獲取匹配的拼音碼表
//*strin,輸入的字符串,形如:"726"
//**matchlist,輸出的匹配表.
//返回值:[7],0,表示完全匹配;1,表示部分匹配(僅在沒有完全匹配的時候才會出現)
// [6:0],完全匹配的時候,表示完全匹配的拼音個數
// 部分匹配的時候,表示有效匹配的位數
u8 get_matched_pymb(u8 *strin,py_index **matchlist)
{
py_index *bestmatch;//最佳匹配
u16 pyindex_len; u16 i;
u8 temp,mcnt=0,bmcnt=0;
bestmatch=(py_index*)&py_index3[0];//默認為a 的匹配
pyindex_len=sizeof(py_index3)/sizeof(py_index3[0]);//得到py 索引表的大小.
for(i=0;i<pyindex_len;i++)
{
temp=str_match(strin,(u8*)py_index3[i].py_input);
if(temp)
{
if(temp==0XFF)matchlist[mcnt++]=(py_index*)&py_index3[i];
else if(temp>bmcnt)//找最佳匹配
{
bmcnt=temp;
bestmatch=(py_index*)&py_index3[i];//最好的匹配.
}
}
}
if(mcnt==0&&bmcnt)//沒有完全匹配的結果,但是有部分匹配的結果
{
matchlist[0]=bestmatch;
mcnt=bmcnt|0X80; //返回部分匹配的有效位數
}
return mcnt;//返回匹配的個數
}
//得到拼音碼表.
//str:輸入字符串
//返回值:匹配個數.
u8 get_pymb(u8* str)
{
return get_matched_pymb(str,t9.pymb);
}
// 測試用
void test_py(u8 *inputstr)
{
……代碼省略
}





