📄 z_chineseime.cpp
字号:
#include "Z_ChineseIME.h"
#include <assert.h>
#include <string.h>
#ifndef countof
#define countof(array) (sizeof(array)/sizeof(array[0]))
#endif
#define INDEX_A 0
#define INDEX_B 5
#define INDEX_C 21
#define INDEX_D 55
#define INDEX_E 76
#define INDEX_F 80
#define INDEX_G 89
#define INDEX_H 108
#define INDEX_I 127
#define INDEX_J 127
#define INDEX_K 141
#define INDEX_L 159
#define INDEX_M 185
#define INDEX_N 205
#define INDEX_O 229
#define INDEX_P 231
#define INDEX_Q 249
#define INDEX_R 263
#define INDEX_S 277
#define INDEX_T 311
#define INDEX_U 330
#define INDEX_V 330
#define INDEX_W 330
#define INDEX_X 339
#define INDEX_Y 353
#define INDEX_Z 368
#define INDEX_END 404
typedef struct tagChnIMETable {
const char * suffix;
const char * chn_candidate;
} ChnIMETable;
typedef struct tagChnIMEDatabase {
const char * prefix;
ChnIMETable * table;
unsigned int table_size;
} ChnIMEDatabase;
static ChnIMETable table_all[] = {
{"a", "啊阿吖嗄腌锕"},
{"ai", "埃挨哎唉哀皑癌蔼矮艾碍爱隘捱嗳嗌嫒瑷暧砹锿霭"},
{"an", "鞍氨安俺按暗岸胺案谙埯揞犴庵桉铵鹌黯"},
{"ang", "肮昂盎"},
{"ao", "凹敖熬翱袄傲奥懊澳坳拗嗷岙廒遨媪骜獒聱螯鏊鳌鏖"},
{"ba", "芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸茇菝岜灞钯粑鲅魃"},
{"bai", "白柏百摆佰败拜稗捭掰"},
{"ban", "斑班搬扳般颁板版扮拌伴瓣半办绊阪坂钣瘢癍舨"},
{"bang", "邦帮梆榜膀绑棒磅蚌镑傍谤蒡浜"},
{"bao", "苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆炮曝瀑勹葆孢煲鸨褓趵龅"},
{"bei", "杯碑悲卑北辈背贝钡倍狈备惫焙被孛陂邶蓓呗悖碚鹎褙鐾鞴"},
{"ben", "奔苯本笨夯畚坌锛"},
{"beng", "蚌崩绷甭泵蹦迸嘣甏"},
{"bi", "逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛匕俾芘荜荸萆薜吡哔狴庳愎滗濞弼妣婢嬖璧贲睥畀铋秕裨筚箅篦舭襞跸髀"},
{"bian", "鞭边编贬扁便变卞辨辩辫遍匾弁苄忭汴缏煸砭碥窆褊蝙笾鳊"},
{"biao", "标彪膘表婊骠飑飙飚镖镳瘭裱鳔"},
{"bie", "鳖憋别瘪蹩"},
{"bin", "彬斌濒滨宾摈傧豳缤玢槟殡膑镔髌鬓"},
{"bing", "兵冰柄丙秉饼炳病并屏禀邴摒槟"},
{"bo", "柏剥薄玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳卜亳啵饽檗擘礴钹鹁簸跛踣"},
{"bu", "捕卜哺补埠不布步簿部怖埔卟逋瓿晡钚钸醭"},
{"ca", "擦嚓礤"},
{"cai", "猜裁材才财睬踩采彩菜蔡"},
{"can", "餐参蚕残惭惨灿孱骖璨粲黪"},
{"cang", "苍舱仓沧藏伧"},
{"cao", "操糙槽曹草嘈漕螬艚"},
{"ce", "厕策侧册测恻"},
{"cen", "参岑涔"},
{"ceng", "层蹭曾噌"},
{"cha", "插叉茬茶查碴搽察岔差诧刹喳嚓猹馇汊姹杈楂槎檫锸镲衩"},
{"chai", "差拆柴豺侪钗瘥虿"},
{"chan", "搀掺蝉馋谗缠铲产阐颤冁谄蒇廛忏潺澶孱羼婵骣觇禅蟾躔"},
{"chang", "昌猖场尝常长偿肠厂敞畅唱倡裳伥鬯苌菖徜怅惝阊娼嫦昶氅鲳"},
{"chao", "超抄钞朝嘲潮巢吵炒绰剿怊晁焯耖"},
{"che", "车扯撤掣彻澈坼砗"},
{"chen", "郴臣辰尘晨忱沉陈趁衬称沈谌谶抻嗔宸琛榇碜龀"},
{"cheng", "撑称城橙成呈乘程惩澄诚承逞骋秤丞埕枨柽塍瞠铖铛裎蛏酲"},
{"chi", "吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽傺墀茌叱哧啻嗤彳饬媸敕眵鸱瘛褫蚩螭笞篪豉踟魑"},
{"chong", "充冲虫崇宠重茺忡憧铳舂艟"},
{"chou", "抽酬畴踌稠愁筹仇绸瞅丑臭俦帱惆瘳雠"},
{"chu", "初出橱厨躇锄雏滁除楚础储矗搐触处畜亍刍怵憷绌杵楮樗褚蜍蹰黜"},
{"chuai", "揣搋啜嘬膪踹"},
{"chuan", "川穿椽传船喘串舛遄氚钏舡"},
{"chuang", "疮窗幢床闯创怆"},
{"chui", "吹炊捶锤垂椎陲棰槌"},
{"chun", "春椿醇唇淳纯蠢莼鹑蝽"},
{"chuo", "戳绰啜辍踔龊"},
{"ci", "差疵茨磁雌辞慈瓷词此刺赐次茈祠鹚糍"},
{"cong", "聪葱囱匆从丛苁淙骢琮璁枞"},
{"cou", "凑楱辏腠"},
{"cu", "粗醋簇促卒蔟徂猝殂酢蹙蹴"},
{"cuan", "蹿篡窜攒汆撺爨镩"},
{"cui", "摧崔催脆瘁粹淬翠衰萃啐悴璀榱毳"},
{"cun", "村存寸忖皴"},
{"cuo", "磋撮搓措挫错厝嵯脞锉矬痤瘥鹾蹉"},
{"da", "搭达答瘩打大耷哒嗒囗怛妲沓褡笪靼鞑"},
{"dai", "呆歹傣戴带殆代贷袋待逮怠埭甙呔岱迨绐玳黛"},
{"dan", "耽担丹单郸掸胆旦氮但惮淡诞弹蛋石儋凼萏菪啖澹宕殚赕眈疸瘅聃箪"},
{"dang", "当挡党荡档谠砀铛裆"},
{"dao", "刀捣蹈倒岛祷导到稻悼道盗叨氘焘纛"},
{"de", "德得的地锝"},
{"deng", "蹬灯登等瞪凳邓噔嶝戥磴镫簦"},
{"di", "的堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔氐籴诋谛邸坻荻嘀娣柢棣觌祗砥碲睇镝羝骶"},
{"dia", "嗲"},
{"dian", "颠掂滇碘点典靛垫电佃甸店惦奠淀殿丶阽坫巅玷钿癜癫簟踮"},
{"diao", "碉叼雕凋刁掉吊钓调铞貂鲷"},
{"die", "跌爹碟蝶迭谍叠垤堞揲喋牒瓞耋鲽"},
{"ding", "丁盯叮钉顶鼎锭定订仃啶玎腚碇町疔耵酊"},
{"diu", "丢铥"},
{"dong", "东冬董懂动栋侗恫冻洞垌咚岽峒氡胨胴硐鸫"},
{"dou", "兜抖斗陡豆逗痘都蔸钭窦蚪篼"},
{"du", "都督毒犊独读堵睹赌杜镀肚度渡妒芏嘟渎椟牍蠹笃髑黩"},
{"duan", "端短锻段断缎椴煅簖"},
{"dui", "堆兑队对敦怼憝碓镦"},
{"dun", "墩吨蹲敦顿囤钝盾遁沌炖砘礅盹趸"},
{"duo", "度掇哆多夺垛躲朵跺舵剁惰堕咄哚沲缍铎裰踱"},
{"e", "阿蛾峨鹅俄额讹娥恶厄扼遏鄂饿哦噩谔垩苊莪萼呃愕屙婀轭腭锇锷鹗颚鳄"},
{"ei", "诶"},
{"en", "恩蒽摁嗯"},
{"er", "而儿耳尔饵洱二贰迩珥铒鸸鲕"},
{"fa", "发罚筏伐乏阀法珐垡砝"},
{"fan", "藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛蕃蘩幡夂梵攵燔畈蹯"},
{"fang", "坊芳方肪房防妨仿访纺放邡枋钫舫鲂"},
{"fei", "菲非啡飞肥匪诽吠肺废沸费芾狒悱淝妃绯榧腓斐扉砩镄痱蜚篚翡霏鲱"},
{"fen", "芬酚吩氛分纷坟焚汾粉奋份忿愤粪偾瀵棼鲼鼢"},
{"feng", "丰封枫蜂峰锋风疯烽逢冯缝讽奉凤俸酆葑唪沣砜"},
{"fo", "佛"},
{"fou", "否缶"},
{"fu", "夫敷肤孵扶拂辐幅氟符伏俘服浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐莆匐凫郛芙芾苻茯莩菔拊呋呒幞怫滏艴孚驸绂绋桴赙祓黻黼罘稃馥蚨蜉蝠蝮麸趺跗鲋鳆"},
{"ga", "噶嘎夹轧垓尬尕尜旮钆"},
{"gai", "该改概钙盖溉芥丐陔戤赅"},
{"gan", "干甘杆柑竿肝赶感秆敢赣坩苷尴擀泔淦澉绀橄旰矸疳酐"},
{"gang", "冈刚钢缸肛纲岗港杠戆罡筻"},
{"gao", "篙皋高膏羔糕搞镐稿告睾诰郜藁缟槔槁杲锆"},
{"ge", "哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各合咯鬲仡哿圪塥嗝纥搿膈硌镉袼颌虼舸骼"},
{"gei", "给"},
{"gen", "根跟亘茛哏艮"},
{"geng", "耕更庚羹埂耿梗哽赓绠鲠"},
{"gong", "工攻功恭龚供躬公宫弓巩汞拱贡共珙肱蚣觥"},
{"gou", "钩勾沟苟狗垢构购够佝诟岣遘媾缑枸觏彀笱篝鞲"},
{"gu", "告辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇贾嘏诂菰崮汩梏轱牯牿臌毂瞽罟钴锢鸪鹄痼蛄酤觚鲴鹘"},
{"gua", "刮瓜剐寡挂褂卦诖呱栝胍鸹"},
{"guai", "乖拐怪掴"},
{"guan", "棺关官冠观管馆罐惯灌贯纶倌莞掼涫盥鹳矜鳏"},
{"guang", "光广逛咣犷桄胱"},
{"gui", "瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽匦刿庋宄妫桧炅晷皈簋鲑鳜"},
{"gun", "辊滚棍衮绲磙鲧"},
{"guo", "锅郭国果裹过馘埚掴呙帼崞猓椁虢聒蜾蝈"},
{"ha", "蛤哈铪"},
{"hai", "骸孩海氦亥害骇还嗨胲醢"},
{"han", "酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉邗菡撖犴阚瀚晗焓顸颔蚶鼾"},
{"hang", "夯杭航吭行沆绗颃"},
{"hao", "壕嚎豪毫郝好耗号浩貉蒿薅嗥嚆濠灏昊皓颢蚝"},
{"he", "呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺诃劾壑嗬阖曷盍颌蚵翮"},
{"hei", "嘿黑"},
{"hen", "痕很狠恨"},
{"heng", "哼亨横衡恒蘅珩桁"},
{"hong", "轰哄烘虹鸿洪宏弘红黉訇讧荭蕻薨闳泓"},
{"hou", "喉侯猴吼厚候后堠後逅瘊篌糇鲎骺"},
{"hu", "和呼乎忽瑚壶葫胡蝴狐糊湖弧虎唬护互沪户冱唿囫岵猢怙惚浒滹琥槲轷觳烀煳戽扈祜瓠鹄鹕鹱笏醐斛鹘"},
{"hua", "花哗华猾滑画划化话骅桦砉铧"},
{"huai", "槐徊怀淮坏踝"},
{"huan", "欢环桓还缓换患唤痪豢焕涣宦幻郇奂萑擐圜獾洹浣漶寰逭缳锾鲩鬟"},
{"huang", "荒慌黄磺蝗簧皇凰惶煌晃幌恍谎隍徨湟潢遑璜肓癀蟥篁鳇"},
{"hui", "灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘诙茴荟蕙咴喙隳洄彗缋珲桧晖恚虺蟪麾"},
{"hun", "荤昏婚魂浑混诨馄阍溷珲"},
{"huo", "和豁活伙火获或惑霍货祸劐藿攉嚯夥钬锪镬耠蠖"},
{"ji", "给击圾基机畸稽积箕肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪藉骑系亟乩剞佶偈墼芨芰荠蒺蕺掎叽咭哜唧岌嵴洎屐骥畿玑楫殛戟戢赍觊犄齑矶羁嵇稷瘠虮笈笄暨跻跽霁鲚鲫髻麂"},
{"jia", "嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁茄伽郏葭岬浃迦珈戛胛恝铗镓痂瘕蛱笳袈跏"},
{"jian", "歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件健舰剑饯渐溅涧建僭谏谫菅蒹搛囝湔蹇謇缣枧楗戋戬牮犍毽腱睑锏鹣裥笕翦踺鲣鞯"},
{"jiang", "僵姜将浆江疆蒋桨奖讲匠酱降强茳洚绛缰犟礓耩糨豇靓"},
{"jiao", "蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖校佼僬艽茭挢噍峤徼湫姣敫皎鹪蛟醮跤鲛"},
{"jie", "揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届讦诘拮喈嗟婕孑桀碣疖颉蚧羯鲒骱"},
{"jin", "巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸尽劲卺荩堇噤馑廑妗缙瑾槿赆觐衿矜"},
{"jing", "荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净刭儆阱菁獍憬泾迳弪婧肼胫腈旌箐"},
{"jiong", "炯窘迥扃"},
{"jiu", "揪究纠玖韭久灸九酒厩救旧臼舅咎就疚僦啾阄柩桕鸠鹫赳鬏"},
{"ju", "车鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧且倨讵苣苴莒掬遽屦琚枸椐榘榉橘犋飓钜锔窭裾趄醵踽龃雎鞫"},
{"juan", "捐鹃娟倦眷卷绢鄄狷涓桊蠲锩镌隽"},
{"jue", "嚼撅攫抉掘倔爵觉决诀绝厥劂谲矍蕨噘噱崛獗孓珏桷橛爝镢蹶觖"},
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -