📄 pinyin.c
字号:
{'i',' ',' ',' ',' ',1,0x4d,0x26},
{'o','n','g',' ',' ',3,0x90,0x26},
{'o','u',' ',' ',' ',2,0xb1,0x26},
{'u',' ',' ',' ',' ',1,0xcc,0x26},
{'u','a','n',' ',' ',3,0xf9,0x26},
{'u','i',' ',' ',' ',2,0x02,0x27},
{'u','n',' ',' ',' ',2,0x27,0x27},
{'u','o',' ',' ',' ',2,0x38,0x27}};
unsigned char code PY_index_t[][8]={
{'a',' ',' ',' ',' ',1,0x59,0x27},
{'a','i',' ',' ',' ',2,0x78,0x27},
{'a','n',' ',' ',' ',2,0x9d,0x27},
{'a','n','g',' ',' ',3,0xd2,0x27},
{'a','o',' ',' ',' ',2,0x07,0x28},
{'e',' ',' ',' ',' ',1,0x28,0x28},
{'e','i',' ',' ',' ',2,0x33,0x28},
{'e','n','g',' ',' ',3,0x36,0x28},
{'i',' ',' ',' ',' ',1,0x41,0x28},
{'i','a','n',' ',' ',3,0x70,0x28},
{'i','a','o',' ',' ',3,0x8b,0x28},
{'i','e',' ',' ',' ',2,0xae,0x28},
{'i','n','g',' ',' ',3,0xb9,0x28},
{'o','n','g',' ',' ',3,0xde,0x28},
{'o','u',' ',' ',' ',2,0x09,0x29},
{'u',' ',' ',' ',' ',1,0x16,0x29},
{'u','a','n',' ',' ',3,0x37,0x29},
{'u','i',' ',' ',' ',2,0x42,0x29},
{'u','n',' ',' ',' ',2,0x51,0x29},
{'u','o',' ',' ',' ',2,0x60,0x29}};
unsigned char code PY_index_w[][8]={
{'a',' ',' ',' ',' ',1,0x93,0x29},
{'a','i',' ',' ',' ',2,0xa8,0x29},
{'a','n',' ',' ',' ',2,0xaf,0x29},
{'a','n','g',' ',' ',3,0xe8,0x29},
{'e','i',' ',' ',' ',2,0x05,0x2a},
{'e','n',' ',' ',' ',2,0x80,0x2a},
{'e','n','g',' ',' ',3,0x9f,0x2a},
{'o',' ',' ',' ',' ',1,0xaa,0x2a},
{'u',' ',' ',' ',' ',1,0xcd,0x2a}};
unsigned char code PY_index_x[][8]={
{'i',' ',' ',' ',' ',1,0x3e,0x2b},
{'i','a',' ',' ',' ',2,0xd5,0x2b},
{'i','a','n',' ',' ',3,0x00,0x2c},
{'i','a','n','g',' ',4,0x61,0x2c},
{'i','a','o',' ',' ',3,0x9e,0x2c},
{'i','e',' ',' ',' ',2,0xd9,0x2c},
{'i','n',' ',' ',' ',2,0x28,0x2d},
{'i','n','g',' ',' ',3,0x49,0x2d},
{'i','o','n','g',' ',4,0x76,0x2d},
{'i','u',' ',' ',' ',2,0x87,0x2d},
{'u',' ',' ',' ',' ',1,0xaa,0x2d},
{'u','a','n',' ',' ',3,0xef,0x2d},
{'u','e',' ',' ',' ',2,0x24,0x2e},
{'u','n',' ',' ',' ',2,0x3d,0x2e}};
unsigned char code PY_index_y[][8]={
{'a',' ',' ',' ',' ',1,0x7a,0x2e},
{'a','n',' ',' ',' ',2,0xb5,0x2e},
{'a','n','g',' ',' ',3,0x36,0x2f},
{'a','o',' ',' ',' ',2,0x69,0x2f},
{'e',' ',' ',' ',' ',1,0xac,0x2f},
{'i',' ',' ',' ',' ',1,0xdd,0x2f},
{'i','n',' ',' ',' ',2,0xb0,0x30},
{'i','n','g',' ',' ',3,0xf3,0x30},
{'o',' ',' ',' ',' ',1,0x42,0x31},
{'o','n','g',' ',' ',3,0x47,0x31},
{'o','u',' ',' ',' ',2,0x7a,0x31},
{'u',' ',' ',' ',' ',1,0xcd,0x31},
{'u','a','n',' ',' ',3,0x86,0x32},
{'u','e',' ',' ',' ',2,0xcb,0x32},
{'u','n',' ',' ',' ',2,0xea,0x32}};
unsigned char code PY_index_z[][8]={
{'a',' ',' ',' ',' ',1,0x19,0x33},
{'a','i',' ',' ',' ',2,0x28,0x33},
{'a','n',' ',' ',' ',2,0x3b,0x33},
{'a','n','g',' ',' ',3,0x52,0x33},
{'a','o',' ',' ',' ',2,0x61,0x33},
{'e',' ',' ',' ',' ',1,0x80,0x33},
{'e','i',' ',' ',' ',2,0x9b,0x33},
{'e','n',' ',' ',' ',2,0x9e,0x33},
{'e','n','g',' ',' ',3,0xa3,0x33},
{'h','a',' ',' ',' ',2,0xb4,0x33},
{'h','a','i',' ',' ',3,0xe9,0x33},
{'h','a','n',' ',' ',3,0xfe,0x33},
{'h','a','n','g',' ',4,0x2d,0x34},
{'h','a','o',' ',' ',3,0x5c,0x34},
{'h','e',' ',' ',' ',2,0x81,0x34},
{'h','e','n',' ',' ',3,0xaa,0x34},
{'h','e','n','g',' ',4,0xeb,0x34},
{'h','i',' ',' ',' ',2,0x18,0x35},
{'h','o','n','g',' ',4,0xb7,0x35},
{'h','o','u',' ',' ',3,0xda,0x35},
{'h','u',' ',' ',' ',2,0x07,0x36},
{'h','u','a',' ',' ',3,0x68,0x36},
{'h','u','a','i',' ',4,0x6d,0x36},
{'h','u','a','n',' ',4,0x70,0x36},
{'h','u','a','n','g',5,0x87,0x36},
{'h','u','i',' ',' ',3,0x9c,0x36},
{'h','u','n',' ',' ',3,0xb1,0x36},
{'h','u','o',' ',' ',3,0xba,0x36},
{'i',' ',' ',' ',' ',1,0xe7,0x36},
{'o','n','g',' ',' ',3,0x32,0x37},
{'o','u',' ',' ',' ',2,0x47,0x37},
{'u',' ',' ',' ',' ',1,0x5a,0x37},
{'u','a','n',' ',' ',3,0x71,0x37},
{'u','i',' ',' ',' ',2,0x7c,0x37},
{'u','n',' ',' ',' ',2,0x89,0x37},
{'u','o',' ',' ',' ',2,0x94,0x37}};
unsigned int code PY_Index_List[23][3]={{'a',sizeof(PY_index_a)/8,PY_index_a},
{'b',sizeof(PY_index_b)/8,PY_index_b},
{'c',sizeof(PY_index_c)/8,PY_index_c},
{'d',sizeof(PY_index_d)/8,PY_index_d},
{'e',sizeof(PY_index_e)/8,PY_index_e},
{'f',sizeof(PY_index_f)/8,PY_index_f},
{'g',sizeof(PY_index_g)/8,PY_index_g},
{'h',sizeof(PY_index_h)/8,PY_index_h},
{'j',sizeof(PY_index_j)/8,PY_index_j},
{'k',sizeof(PY_index_k)/8,PY_index_k},
{'l',sizeof(PY_index_l)/8,PY_index_l},
{'m',sizeof(PY_index_m)/8,PY_index_m},
{'n',sizeof(PY_index_n)/8,PY_index_n},
{'o',sizeof(PY_index_o)/8,PY_index_o},
{'p',sizeof(PY_index_p)/8,PY_index_p},
{'q',sizeof(PY_index_q)/8,PY_index_q},
{'r',sizeof(PY_index_r)/8,PY_index_r},
{'s',sizeof(PY_index_s)/8,PY_index_s},
{'t',sizeof(PY_index_t)/8,PY_index_t},
{'w',sizeof(PY_index_w)/8,PY_index_w},
{'x',sizeof(PY_index_x)/8,PY_index_x},
{'y',sizeof(PY_index_y)/8,PY_index_y},
{'z',sizeof(PY_index_z)/8,PY_index_z}};
///////////////////////////////////////////////////////////////////////////////
//根据输入的拼音组合计算出:
//函数说明:用全拼方法输入的字母序列(如"yang")及长度(4)固定保存在sPinyinList_0
// 结构中,sPinyinList_0.uArray中保存字母序列(如"yang"),sPinyinList_0.uLen
// 中保存长度(4);该函数根据这两个数据计算同音"yang"字的起始地址距离首地址的
// 偏移量。
//参数: 无
//返回值:正常情况下返回汉字在字符表中的相对首地址的偏移量(声韵母合法)
// 0xffff-没有声母或声韵母组合不正确
///////////////////////////////////////////////////////////////////////////////
unsigned int CalcPinyinOffset(void){
unsigned char i,j;
unsigned char code *pPY;
if(!sQuanPinInfo.uLen) {return 0xffff;}
if(sQuanPinInfo.uArray[0]=='i'){return 0xffff;}
if(sQuanPinInfo.uArray[0]=='u'){return 0xffff;}
if(sQuanPinInfo.uArray[0]=='v'){return 0xffff;}
//B13toB18=0;
for(i=0;i<23;i++) //查找声母位置
{
if(sQuanPinInfo.uArray[0]==PY_Index_List[i][0]) //查找声母位置
{
pPY=(unsigned char code *)PY_Index_List[i][2]; //找到声母所在起始位置
if(sQuanPinInfo.uLen==1) //无韵母
{
if(*(pPY+5)==0){return (*(pPY+7))*256+*(pPY+6);}//如果在列表中确实没有韵母
else{return 0xffff;} //列表中有韵母,输入不完整
}
else //有韵母
{
for(j=0;j<PY_Index_List[i][1];j++) //找韵母
{
if(memcmp(pPY+8*j,sQuanPinInfo.uArray+1,sQuanPinInfo.uLen-1)==0)//找到韵母相同的位置
{
if((*(pPY+8*j+5))==(sQuanPinInfo.uLen-1))//韵母数量相同
{
return (*(pPY+8*j+7))*256+(*(pPY+8*j+6));
}
else //韵母数量不同,拼写不完整
{
return 0xffff;
}
}
}
}
}
}
return 0xffff;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -