📄 t9input.c
字号:
{"he",PY_mb_she},
{"hen",PY_mb_shen},
{"heng",PY_mb_sheng},
{"hi",PY_mb_shi},
{"hou",PY_mb_shou},
{"hu",PY_mb_shu},
{"hua",PY_mb_shua},
{"huai",PY_mb_shuai},
{"huan",PY_mb_shuan},
{"huang",PY_mb_shuang},
{"hui",PY_mb_shui},
{"hun",PY_mb_shun},
{"huo",PY_mb_shuo},
{"i",PY_mb_si},
{"ong",PY_mb_song},
{"ou",PY_mb_sou},
{"u",PY_mb_su},
{"uan",PY_mb_suan},
{"ui",PY_mb_sui},
{"un",PY_mb_sun},
{"uo",PY_mb_suo}};
code struct PY_index code PY_index_t[]={{"a",PY_mb_ta},
{"ai",PY_mb_tai},
{"an",PY_mb_tan},
{"ang",PY_mb_tang},
{"ao",PY_mb_tao},
{"e",PY_mb_te},
{"eng",PY_mb_teng},
{"i",PY_mb_ti},
{"ian",PY_mb_tian},
{"iao",PY_mb_tiao},
{"ie",PY_mb_tie},
{"ing",PY_mb_ting},
{"ong",PY_mb_tong},
{"ou",PY_mb_tou},
{"u",PY_mb_tu},
{"uan",PY_mb_tuan},
{"ui",PY_mb_tui},
{"un",PY_mb_tun},
{"uo",PY_mb_tuo}};
code struct PY_index code PY_index_u[]={{"",PY_mb_space}};
code struct PY_index code PY_index_v[]={{"",PY_mb_space}};
code struct PY_index code PY_index_w[]={{"a",PY_mb_wa},
{"ai",PY_mb_wai},
{"an",PY_mb_wan},
{"ang",PY_mb_wang},
{"ei",PY_mb_wei},
{"en",PY_mb_wen},
{"eng",PY_mb_weng},
{"o",PY_mb_wo},
{"u",PY_mb_wu}};
code struct PY_index code PY_index_x[]={{"i",PY_mb_xi},
{"ia",PY_mb_xia},
{"ian",PY_mb_xiao},
{"iang",PY_mb_xiang},
{"iao",PY_mb_xiao},
{"ie",PY_mb_xie},
{"in",PY_mb_xin},
{"ing",PY_mb_xing},
{"iong",PY_mb_xiong},
{"iu",PY_mb_xiu},
{"u",PY_mb_xu},
{"uan",PY_mb_xuan},
{"ue",PY_mb_xue},
{"un",PY_mb_xun}};
code struct PY_index code PY_index_y[]={{"a",PY_mb_ya},
{"an",PY_mb_yan},
{"ang",PY_mb_yang},
{"ao",PY_mb_yao},
{"e",PY_mb_ye},
{"i",PY_mb_yi},
{"in",PY_mb_yin},
{"ing",PY_mb_ying},
{"o",PY_mb_yo},
{"ong",PY_mb_yong},
{"ou",PY_mb_you},
{"u",PY_mb_yu},
{"uan",PY_mb_yuan},
{"ue",PY_mb_yue},
{"un",PY_mb_yun}};
code struct PY_index code PY_index_z[]={{"a",PY_mb_za},
{"ai",PY_mb_zai},
{"an",PY_mb_zan},
{"ang",PY_mb_zang},
{"ao",PY_mb_zao},
{"e",PY_mb_ze},
{"ei",PY_mb_zei},
{"en",PY_mb_zen},
{"eng",PY_mb_zeng},
{"ha",PY_mb_zha},
{"hai",PY_mb_zhai},
{"han",PY_mb_zhan},
{"hang",PY_mb_zhang},
{"hao",PY_mb_zhao},
{"he",PY_mb_zhe},
{"hen",PY_mb_zhen},
{"heng",PY_mb_zheng},
{"hi",PY_mb_zhi},
{"hong",PY_mb_zhong},
{"hou",PY_mb_zhou},
{"hu",PY_mb_zhu},
{"hua",PY_mb_zhua},
{"huai",PY_mb_zhuai},
{"huan",PY_mb_zhuan},
{"huang",PY_mb_zhuang},
{"hui",PY_mb_zhui},
{"hun",PY_mb_zhun},
{"huo",PY_mb_zhuo},
{"i",PY_mb_zi},
{"ong",PY_mb_zong},
{"ou",PY_mb_zou},
{"u",PY_mb_zu},
{"uan",PY_mb_zuan},
{"ui",PY_mb_zui},
{"un",PY_mb_zun},
{"uo",PY_mb_zuo}};
code struct PY_index code PY_index_end[]={"",PY_mb_space};
/*定义首字母索引表*/
code struct PY_index code *PY_index_headletter[]={ PY_index_a,
PY_index_b,
PY_index_c,
PY_index_d,
PY_index_e,
PY_index_f,
PY_index_g,
PY_index_h,
PY_index_i,
PY_index_j,
PY_index_k,
PY_index_l,
PY_index_m,
PY_index_n,
PY_index_o,
PY_index_p,
PY_index_q,
PY_index_r,
PY_index_s,
PY_index_t,
PY_index_u,
PY_index_v,
PY_index_w,
PY_index_x,
PY_index_y,
PY_index_z,
PY_index_end};
//---------------------------------------------------------------------------------------
void T9Reset()
{ //开始拼写一个汉字之前必须先调用
BYTE i;
for (i=0;i<8;i++)
{
PYBuf[i][0]=0;
}
}
//---------------------------------------------------------------------------------------
BYTE * GetChnStr(BYTE * strInput_py_str,BYTE * PYCount)
{ //返回值:指向第一个符合拼音的PY_index结构体
//PYCount:通过这个值来指示共有几个PY_index符合要求
struct PY_index *cpHZ,*cpHZedge,*pHZ=NULL;
char i,cInputStrLength;
cInputStrLength=strlen(strInput_py_str); /*输入拼音串长度*/
if(*strInput_py_str=='\0')return NULL; /*如果输入空字符返回0*/
for(i=0;i<cInputStrLength;i++)
*(strInput_py_str+i)|=0x20; /*将字母串转为小写*/
if(*strInput_py_str=='i')return NULL; /*错误拼音输入*/
if(*strInput_py_str=='u')return NULL;
if(*strInput_py_str=='v')return NULL;
cpHZ=PY_index_headletter[strInput_py_str[0]-'a']; /*查首字母索引*/
cpHZedge=PY_index_headletter[strInput_py_str[0]-'a'+1]; /*设置指针界限*/
strInput_py_str++; /*指向拼音串第二个字母*/
while(cpHZ<cpHZedge) /*索引表不超界*/
{
for(i=0;i<cInputStrLength;i++)
{
if (*(strInput_py_str+i)==0)
{
if (PYCount==NULL)
return cpHZ->PY_mb;
if (pHZ==NULL)
pHZ=cpHZ;
(*PYCount)++;
}
if (*(strInput_py_str+i)!=*((*cpHZ).PY+i))
break; /*发现字母串不配,退出*/
}
cpHZ++;
}
return pHZ;
}
//---------------------------------------------------------------------------------------
BYTE * GetKey(BYTE Key)
{ //输入:0~7
//返回:指向xdata BYTE PYBuf[8][8];的二维数组
//KeyPY结构:每行第一个Byte代表这行内有几个字母,0代表没有
BYTE i,j=0;
BYTE code * pPY;
for (i=0;i<8;i++)
{
if (PYBuf[i][0]!=0)
{
pPY=KeyPY[Key];
while(*pPY!=0)
{
PYBuf[i][PYBuf[i][0]+1]=*pPY;
PYBuf[i][PYBuf[i][0]+2]=0;
if (GetChnStr(PYBuf[i]+1,NULL))
{
PYBuf[i][0]++;
break;
}
pPY++;
}
if (*pPY==0)
PYBuf[i][0]=0;
}
else j++;
}
if (j==8) //第一次按键
{
for (i=0,j=0;KeyPY[Key][i]!=0;i++)
{
if (KeyPY[Key][i]=='i' || KeyPY[Key][i]=='u' || KeyPY[Key][i]=='v')
continue;
else
{
PYBuf[j][0]=1;
PYBuf[j][1]=KeyPY[Key][i];
j++;
}
}
}
return PYBuf;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -