📄 z_chineseime.cpp
字号:
{"wai", "歪外崴"},
{"wan", "蔓豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕剜芄莞菀纨绾琬脘畹蜿"},
{"wang", "汪王亡枉网往旺望忘妄罔惘辋魍"},
{"wei", "威巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫偎诿隈隗圩葳薇帏帷崴嵬猥猬闱沩洧涠逶娓玮韪軎炜煨痿艉鲔"},
{"wen", "瘟温蚊文闻纹吻稳紊问刎夂阌汶璺攵雯"},
{"weng", "嗡翁瓮蓊蕹"},
{"wo", "挝蜗涡窝我斡卧握沃倭莴喔幄渥肟硪龌"},
{"wu", "恶巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误兀仵阢邬圬芴唔庑怃忤寤迕妩婺骛杌牾焐鹉鹜痦蜈鋈鼯"},
{"xi", "栖昔熙析西硒矽晰嘻吸锡牺稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细僖兮隰郗茜菥葸蓰奚唏徙饩阋浠淅屣嬉玺樨曦觋欷歙熹禊禧皙穸裼蜥螅蟋舄舾羲粞翕醯蹊鼷"},
{"xia", "瞎虾匣霞辖暇峡侠狭下厦夏吓呷狎遐瑕柙硖罅黠"},
{"xian", "见铣掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线冼苋莶藓岘猃暹娴氙燹祆鹇痫蚬筅籼酰跣跹霰"},
{"xiang", "降相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象芗葙饷庠骧缃蟓鲞飨"},
{"xiao", "萧硝霄削哮嚣销消宵淆晓小孝校肖啸笑效哓崤潇逍骁绡枭枵蛸筱箫魈"},
{"xie", "楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑偕亵勰燮薤撷獬廨渫瀣邂绁缬榭榍颉蹀躞"},
{"xin", "薪芯锌欣辛新忻心信衅囟馨莘昕歆镡鑫"},
{"xing", "省星腥猩惺兴刑型形邢行醒幸杏性姓陉荇荥擤饧悻硎"},
{"xiong", "兄凶胸匈汹雄熊芎"},
{"xiu", "臭休修羞朽嗅锈秀袖绣咻岫馐庥溴鸺貅髹"},
{"xu", "墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续吁诩勖圩蓿洫溆顼栩肷煦盱胥糈醑"},
{"xuan", "轩喧宣悬旋玄选癣眩绚儇谖萱揎泫渲漩璇楦暄炫煊碹铉镟痃"},
{"xue", "削靴薛学穴雪血谑噱泶踅鳕"},
{"xun", "浚勋熏循旬询寻驯巡殉汛训讯逊迅巽郇埙荀荨蕈薰峋徇獯恂洵浔曛窨醺鲟"},
{"ya", "压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶轧伢垭揠岈迓娅琊桠氩砑睚痖"},
{"yan", "焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殷厣赝剡俨偃兖谳郾鄢埏芫菸崦恹闫阏湮滟妍嫣琰檐晏胭腌焱罨筵酽趼魇餍鼹"},
{"yang", "殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾徉怏泱炀烊恙蛘鞅"},
{"yao", "邀腰妖瑶摇尧遥窑谣姚咬舀药要耀钥夭爻吆崾徭幺珧杳轺曜肴铫鹞窈繇鳐麽"},
{"ye", "椰噎耶爷野冶也页掖业叶曳腋夜液拽靥谒邺揶揲晔烨铘"},
{"yi", "艾蛇一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎刈劓佚佾诒圯埸懿苡荑薏弈奕挹弋呓咦咿嗌噫峄嶷猗饴怿怡悒漪迤驿缢殪轶贻欹旖熠眙钇镒镱痍瘗癔翊蜴舣羿翳酏黟"},
{"yin", "茵荫因殷音阴姻吟银淫寅饮尹引隐印胤鄞垠堙茚吲喑狺夤洇氤铟瘾窨蚓霪龈"},
{"ying", "英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映嬴郢茔荥莺萦蓥撄嘤膺滢潆瀛瑛璎楹媵鹦瘿颍罂"},
{"yo", "哟唷"},
{"yong", "拥佣臃痈庸雍踊蛹咏泳涌永恿勇用俑壅墉喁慵邕镛甬鳙饔"},
{"you", "幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼卣攸侑莠莜莸尢呦囿宥柚猷牖铕疣蚰蚴蝣蝤繇鱿黝鼬"},
{"yu", "尉迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉浴寓裕预豫驭粥禺毓伛俣谀谕萸蓣揄圄圉嵛狳饫馀庾阈鬻妪妤纡瑜昱觎腴欤於煜熨燠聿畲钰鹆鹬瘐瘀窬窳蜮蝓竽臾舁雩龉"},
{"yuan", "鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院垸塬芫掾圜沅媛瑗橼爰眢鸢螈箢鼋"},
{"yue", "乐说曰约越跃钥岳粤月悦阅龠哕瀹栎樾刖钺"},
{"yun", "耘云郧匀陨允运蕴酝晕韵孕郓芸狁恽愠纭韫殒昀氲熨筠"},
{"za", "匝砸杂咋拶咂"},
{"zai", "栽哉灾宰载再在子崽甾"},
{"zan", "咱攒暂赞瓒昝簪糌趱錾"},
{"zang", "赃脏葬奘驵臧"},
{"zao", "遭糟凿藻枣早澡蚤躁噪造皂灶燥唣"},
{"ze", "责择则泽咋仄赜啧帻迮昃笮箦舴"},
{"zei", "贼"},
{"zen", "怎谮"},
{"zeng", "增憎曾赠综缯甑罾锃"},
{"zha", "扎喳渣札轧铡闸眨栅榨咋乍炸诈柞揸吒咤哳楂砟痄蚱"},
{"zhai", "翟摘斋宅窄债寨砦瘵"},
{"zhan", "瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽谵搌旃"},
{"zhang", "长樟章彰漳张掌涨杖丈帐账仗胀瘴障仉鄣幛嶂獐嫜璋蟑"},
{"zhao", "朝招昭找沼赵照罩兆肇召爪着诏棹钊笊"},
{"zhe", "遮折哲蛰辙者锗蔗这浙着乇谪摺柘辄磔鹧褶蜇螫赭"},
{"zhen", "珍斟真甄砧臻贞针侦枕疹诊震振镇阵帧圳蓁浈缜桢椹榛轸赈胗朕祯畛稹鸩箴"},
{"zheng", "蒸挣睁征狰争怔整拯正政症郑证诤峥徵钲铮筝"},
{"zhi", "芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒卮陟郅埴芷摭帙忮彘咫骘栉枳栀桎轵轾贽胝膣祉黹雉鸷痣蛭絷酯跖踬踯豸觯"},
{"zhong", "中盅忠钟衷终种肿重仲众冢忪锺螽舯踵"},
{"zhou", "舟周州洲诌粥轴肘帚咒皱宙昼骤荮啁妯纣绉胄碡籀繇酎"},
{"zhu", "属珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑住注祝驻伫侏邾苎茱洙渚潴杼槠橥炷铢疰瘃竺箸舳翥躅麈"},
{"zhua", "挝抓爪"},
{"zhuai", "拽"},
{"zhuan", "传专砖转撰赚篆啭馔颛"},
{"zhuang", "幢桩庄装妆撞壮状僮"},
{"zhui", "椎锥追赘坠缀萑惴骓缒隹"},
{"zhun", "屯谆准肫窀"},
{"zhuo", "捉拙卓桌琢茁酌啄着灼浊倬诼擢浞涿濯禚斫镯"},
{"zi", "兹咨资姿滋淄孜紫仔籽滓子自渍字谘茈呲嵫姊孳缁梓辎赀恣眦锱秭耔笫粢趑觜訾龇鲻髭"},
{"zong", "鬃棕踪宗综总纵偬腙粽"},
{"zou", "邹走奏揍诹陬鄹驺鲰"},
{"zu", "租足卒族祖诅阻组俎菹镞"},
{"zuan", "钻纂攥缵躜"},
{"zui", "嘴醉最罪蕞觜"},
{"zun", "尊遵撙樽鳟"},
{"zuo", "昨左佐柞做作坐座阼唑嘬怍胙祚笮酢"},
};
static const ChnIMEDatabase IMEDatabase[] = {
{"a", &table_all[INDEX_A], INDEX_B - INDEX_A},
{"b", &table_all[INDEX_B], INDEX_C - INDEX_B},
{"c", &table_all[INDEX_C], INDEX_D - INDEX_C},
{"d", &table_all[INDEX_D], INDEX_E - INDEX_D},
{"e", &table_all[INDEX_E], INDEX_F - INDEX_E},
{"f", &table_all[INDEX_F], INDEX_G - INDEX_F},
{"g", &table_all[INDEX_G], INDEX_H - INDEX_G},
{"h", &table_all[INDEX_H], INDEX_I - INDEX_H},
{"i", &table_all[INDEX_I], INDEX_J - INDEX_I},
{"j", &table_all[INDEX_J], INDEX_K - INDEX_J},
{"k", &table_all[INDEX_K], INDEX_L - INDEX_K},
{"l", &table_all[INDEX_L], INDEX_M - INDEX_L},
{"m", &table_all[INDEX_M], INDEX_N - INDEX_M},
{"n", &table_all[INDEX_N], INDEX_O - INDEX_N},
{"o", &table_all[INDEX_O], INDEX_P - INDEX_O},
{"p", &table_all[INDEX_P], INDEX_Q - INDEX_P},
{"q", &table_all[INDEX_Q], INDEX_R - INDEX_Q},
{"r", &table_all[INDEX_R], INDEX_S - INDEX_R},
{"s", &table_all[INDEX_S], INDEX_T - INDEX_S},
{"t", &table_all[INDEX_T], INDEX_U - INDEX_T},
{"u", &table_all[INDEX_U], INDEX_V - INDEX_U},
{"v", &table_all[INDEX_V], INDEX_W - INDEX_V},
{"w", &table_all[INDEX_W], INDEX_X - INDEX_W},
{"x", &table_all[INDEX_X], INDEX_Y - INDEX_X},
{"y", &table_all[INDEX_Y], INDEX_Z - INDEX_Y},
{"z", &table_all[INDEX_Z], INDEX_END - INDEX_Z},
};
unsigned int ChnIME_GetChineseCount(void)
{
size_t count = 0;
for (unsigned int i = 0; i < countof(table_all); i++) {
count += strlen(table_all[i].chn_candidate)/2;
}
return (unsigned int)count;
}
unsigned int ChnIME_IsValidSpell(const char * str_spell)
{
assert(str_spell != NULL);
assert(strlen(str_spell) > 0);
unsigned int valid = 0;
int i = 0;
int offset = str_spell[0] - 'a';
int table_size = IMEDatabase[offset].table_size;
int v = 0;
for (i = 0; i < table_size; i++) {
v = strncmp(IMEDatabase[offset].table[i].suffix, str_spell, strlen(str_spell));
if (v == 0) {
valid = 1;
break;
} else if (v > 0) {
break;
}
}
return valid;
}
const char * ChnIME_GetForecastChnCandidate(const char * str_spell)
{
assert(str_spell != NULL);
assert(strlen(str_spell) > 0);
const char * str = NULL;
unsigned int valid = 0;
int i = 0;
int offset = str_spell[0] - 'a';
int table_size = IMEDatabase[offset].table_size;
int v = 0;
for (i = 0; i < table_size; i++) {
v = strncmp(IMEDatabase[offset].table[i].suffix, str_spell, strlen(str_spell));
if (v == 0) {
str = IMEDatabase[offset].table[i].chn_candidate;
break;
} else if (v > 0) {
break;
}
}
return str;
}
const char * ChnIME_GetChnCandidate(const char * str_spell)
{
assert(str_spell != NULL);
assert(strlen(str_spell) > 0);
const char * str = NULL;
int i = 0;
int offset = str_spell[0] - 'a';
int table_size = IMEDatabase[offset].table_size;
int v = 0;
for (i = 0; i < table_size; i++) {
v = strcmp(IMEDatabase[offset].table[i].suffix + 1, str_spell + 1);
if (v == 0) {
str = IMEDatabase[offset].table[i].chn_candidate;
break;
} else if (v > 0) {
break;
}
}
return str;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -