在日常业务中,需要进行中文转拼音的检索。已便实现对应的 模糊搜索。
使用方法
std::string res = "我是中国人";char* result = new char[res.length() + 1];for (int i = 0; i < res.length(); ++i){result[i] = res[i];}result[res.length()] = '\0';std::string str2(result);std::string p = m_pinyin->chineseConvertPinYinAllSpell(str2);qDebug() << "pinyin 9999999999999" << p;
void CCendPinyinSearch::insertSearchIndex(int index,QString name)
{// 检索索引QMap<int,QString> m_pSearchIndex;m_pSearchIndex.insert(index, name);
}void CCendPinyinSearch::getSeachIndexList(QString name)
{QMap<int, QString>::const_iterator i;for (i = m_pSearchIndex.constBegin(); i != m_pSearchIndex.constEnd(); ++i) {qDebug() << "123123777777777777777 index" << i.key() << ": " << i.value();if (i.value() == name){qDebug() << "123123123888888888888 index" << i.key() << ": " << i.value();}}
}//检查哈希表 查找
bool CCendPinyinSearch::isContainsAllCharactersHash(const std::string& mainString, const std::string& subString) {// 初始化哈希表 std::unordered_map<char, int> charCounts;for (char c : subString) {charCounts[c]++;}// 遍历主字符串并更新哈希表 for (char c : mainString) {if (charCounts.find(c) != charCounts.end()) {charCounts[c]--;if (charCounts[c] == 0) {// 如果字符的计数减到0,从哈希表中删除该字符 charCounts.erase(c);}}}// 检查哈希表 return charCounts.empty(); // 如果哈希表为空,说明所有字符都被找到了
}// 排序算法 查找匹配
bool CCendPinyinSearch::isContainsAllCharacters(const std::string& mainString, const std::string& subString) {// 对两个字符串进行排序std::string sorted_main = mainString;std::string sorted_sub = subString;std::sort(sorted_main.begin(), sorted_main.end());std::sort(sorted_sub.begin(), sorted_sub.end());// 使用双指针法检查 sorted_sub 是否是 sorted_main 的子序列 int i = 0, j = 0;while (i < sorted_sub.length() && j < sorted_main.length()) {if (sorted_sub[i] == sorted_main[j]) {i++; // 移动到 sorted_sub 的下一个字符 }j++; // 移动到 sorted_main 的下一个字符 }// 如果 sorted_sub 的所有字符都在 sorted_main 中找到,则 sorted_sub 是 sorted_main 的子序列 return sorted_sub.length() == i;
}std::string CCendPinyinSearch::chineseConvertPinYinAllSpell(const std::string & dest_chinese)
{static const int spell_value[] = { -20319, -20317, -20304, -20295,-20292, -20283, -20265, -20257, -20242, -20230, -20051, -20036,-20032, -20026,-20002, -19990, -19986, -19982, -19976, -19805, -19784, -19775,-19774, -19763, -19756, -19751, -19746, -19741, -19739, -19728,-19725, -19715, -19540, -19531, -19525, -19515, -19500, -19484,-19479, -19467, -19289, -19288, -19281, -19275, -19270, -19263,-19261, -19249, -19243, -19242, -19238, -19235, -19227, -19224,-19218, -19212, -19038, -19023, -19018, -19006, -19003, -18996,-18977, -18961, -18952, -18783, -18774, -18773, -18763, -18756,-18741, -18735, -18731, -18722, -18710, -18697, -18696, -18526,-18518, -18501, -18490, -18478, -18463, -18448, -18447, -18446,-18239, -18237, -18231, -18220, -18211, -18201, -18184, -18183,-18181, -18012, -17997, -17988, -17970, -17964, -17961, -17950,-17947, -17931, -17928, -17922, -17759, -17752, -17733, -17730,-17721, -17703, -17701, -17697, -17692, -17683, -17676, -17496,-17487, -17482, -17468, -17454, -17433, -17427, -17417, -17202,-17185, -16983, -16970, -16942, -16915, -16733, -16708, -16706,-16689, -16664, -16657, -16647, -16474, -16470, -16465, -16459,-16452, -16448, -16433, -16429, -16427, -16423, -16419, -16412,-16407, -16403, -16401, -16393, -16220, -16216, -16212, -16205,-16202, -16187, -16180, -16171, -16169, -16158, -16155, -15959,-15958, -15944, -15933, -15920, -15915, -15903, -15889, -15878,-15707, -15701, -15681, -15667, -15661, -15659, -15652, -15640,-15631, -15625, -15454, -15448, -15436, -15435, -15419, -15416,-15408, -15394, -15385, -15377, -15375, -15369, -15363, -15362,-15183, -15180, -15165, -15158, -15153, -15150, -15149, -15144,-15143, -15141, -15140, -15139, -15128, -15121, -15119, -15117,-15110, -15109, -14941, -14937, -14933, -14930, -14929, -14928,-14926, -14922, -14921, -14914, -14908, -14902, -14894, -14889,-14882, -14873, -14871, -14857, -14678, -14674, -14670, -14668,-14663, -14654, -14645, -14630, -14594, -14429, -14407, -14399,-14384, -14379, -14368, -14355, -14353, -14345, -14170, -14159,-14151, -14149, -14145, -14140, -14137, -14135, -14125, -14123,-14122, -14112, -14109, -14099, -14097, -14094, -14092, -14090,-14087, -14083, -13917, -13914, -13910, -13907, -13906, -13905,-13896, -13894, -13878, -13870, -13859, -13847, -13831, -13658,-13611, -13601, -13406, -13404, -13400, -13398, -13395, -13391,-13387, -13383, -13367, -13359, -13356, -13343, -13340, -13329,-13326, -13318, -13147, -13138, -13120, -13107, -13096, -13095,-13091, -13076, -13068, -13063, -13060, -12888, -12875, -12871,-12860, -12858, -12852, -12849, -12838, -12831, -12829, -12812,-12802, -12607, -12597, -12594, -12585, -12556, -12359, -12346,-12320, -12300, -12120, -12099, -12089, -12074, -12067, -12058,-12039, -11867, -11861, -11847, -11831, -11798, -11781, -11604,-11589, -11536, -11358, -11340, -11339, -11324, -11303, -11097,-11077, -11067, -11055, -11052, -11045, -11041, -11038, -11024,-11020, -11019, -11018, -11014, -10838, -10832, -10815, -10800,-10790, -10780, -10764, -10587, -10544, -10533, -10519, -10331,-10329, -10328, -10322, -10315, -10309, -10307, -10296, -10281,-10274, -10270, -10262, -10260, -10256, -10254 };// 395个字符串,每个字符串长度不超过6 static const char spell_dict[396][7] = { "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", "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","dian", "diao", "die", "ding", "diu", "dong", "dou", "du", "duan","dui", "dun", "duo", "e", "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", "jun", "ka", "kai", "kan", "kang", "kao", "ke", "ken","keng", "kong", "kou", "ku", "kua", "kuai", "kuan", "kuang", "kui","kun", "kuo", "la", "lai", "lan", "lang", "lao", "le", "lei","leng", "li", "lia", "lian", "liang", "liao", "lie", "lin", "ling","liu", "long", "lou", "lu", "lv", "luan", "lue", "lun", "luo","ma", "mai", "man", "mang", "mao", "me", "mei", "men", "meng", "mi","mian", "miao", "mie", "min", "ming", "miu", "mo", "mou", "mu","na", "nai", "nan", "nang", "nao", "ne", "nei", "nen", "neng", "ni","nian", "niang", "niao", "nie", "nin", "ning", "niu", "nong","nu", "nv", "nuan", "nue", "nuo", "o", "ou", "pa", "pai", "pan","pang", "pao", "pei", "pen", "peng", "pi", "pian", "piao", "pie","pin", "ping", "po", "pu", "qi", "qia", "qian", "qiang", "qiao","qie", "qin", "qing", "qiong", "qiu", "qu", "quan", "que", "qun","ran", "rang", "rao", "re", "ren", "reng", "ri", "rong", "rou","ru", "ruan", "rui", "run", "ruo", "sa", "sai", "san", "sang","sao", "se", "sen", "seng", "sha", "shai", "shan", "shang", "shao","she", "shen", "sheng", "shi", "shou", "shu", "shua","shuai", "shuan", "shuang", "shui", "shun", "shuo", "si", "song","sou", "su", "suan", "sui", "sun", "suo", "ta", "tai","tan", "tang", "tao", "te", "teng", "ti", "tian", "tiao", "tie","ting", "tong", "tou", "tu", "tuan", "tui", "tun", "tuo","wa", "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" };std::string pinyin;const int length = dest_chinese.length();for (int j = 0, chrasc = 0; j < length;) {// 非汉字处理if (dest_chinese.at(j) >= 0 && dest_chinese.at(j) < 128) {pinyin += dest_chinese[j];// 偏移下标j++;continue;} // 汉字处理chrasc = dest_chinese[j] * 256 + dest_chinese[j + 1] + 256;if (chrasc > 0 && chrasc < 160) {// 非汉字pinyin += dest_chinese.at(j);// 偏移下标j++;}else {// 汉字for (int i = (sizeof(spell_value) / sizeof(spell_value[0]) - 1);i >= 0; --i) {// 查找字典if (spell_value[i] <= chrasc) {pinyin += spell_dict[i];break;}} // 偏移下标 (汉字双字节)j += 2;}}// for endreturn pinyin;
}
测试的 拼音完全正确,谁能告诉我哪儿出错l
错误的拼音!!!
拼音 翻译的很到位,关键不认识!
正确的 拼音
// 查询 数据拼音//std::string p = m_pPinyinSearch->chineseConvertPinYinAllSpell(searchName.toStdString());std::string p = m_pPinyinSearch->chineseConvertPinYinAllSpell(string((const char*)searchName.toLocal8Bit()));
string与QString之间的转换
1.fromStdString直接转换
string str;
QString qstr;//从QString 到 std::string
str = qstr.toStdString();//从std::string 到QString
qstr = QString::fromStdString(str);
2.fromLocal8Bit(cstr.c_str())
std::string cstr;
QString qstring;//从std::string 到QString
qstring = QString(QString::fromLocal8Bit(cstr.c_str()));//从QString 到 std::string
cstr = string((const char *)qstring.toLocal8Bit());
参考
改良版本
#include "CCendPinyinDataSearch.h"
#include "CCendPinyinData.h"
//
/// 汉字转拼音函数 适合gb2312和utf8
//
#define HZ2PY_OUTPUT_BUF_ARRAY_SIZE 5120 //一个字段的拼音最长长度
#define HZ2PY_MAX_PINYIN_SIZE 30 //一个字的拼音最长长度
#define HZ2PY_UTF8_CHECK_LENGTH 20 //检查是否为utf8编码时所检查的字符长度CCendPinyinDataSearch::CCendPinyinDataSearch(QWidget* parent): QWidget(parent)
{// 测试拼音转换testData();
}CCendPinyinDataSearch::~CCendPinyinDataSearch()
{}void CCendPinyinDataSearch::insertSearchIndex(int index,QString name)
{m_pSearchIndex.insert(index, name);
}QStringList CCendPinyinDataSearch::getSeachListData()
{return m_pSearchIndexList;
}void CCendPinyinDataSearch::getSeachIndexList(QString name)
{QMap<int, QString>::const_iterator i;m_pSearchIndexList = {};for (i = m_pSearchIndex.constBegin(); i != m_pSearchIndex.constEnd(); ++i) { if (isContainsAllCharacters(i.value().toStdString(), name.toStdString())){m_pSearchIndexList << QString::number(i.key());}}
}bool CCendPinyinDataSearch::isContainsAllCharacters(const std::string& mainString, const std::string& subString) {// 对两个字符串进行排序std::string sorted_main = mainString;std::string sorted_sub = subString;std::sort(sorted_main.begin(), sorted_main.end());std::sort(sorted_sub.begin(), sorted_sub.end());// 使用双指针法检查 sorted_sub 是否是 sorted_main 的子序列 int i = 0, j = 0;while (i < sorted_sub.length() && j < sorted_main.length()) {if (sorted_sub[i] == sorted_main[j]) {i++; // 移动到 sorted_sub 的下一个字符 }j++; // 移动到 sorted_main 的下一个字符 }// 如果 sorted_sub 的所有字符都在 sorted_main 中找到,则 sorted_sub 是 sorted_main 的子序列 return sorted_sub.length() == i;
}QString CCendPinyinDataSearch::chineseConvertPinYinAllSpell(QString dest_chinese,bool isUtf8)
{//char inbuf[1000] = "平阳路龙城大街龙瑞苑小区刘峰峰收";char* outbuf = new char[HZ2PY_OUTPUT_BUF_ARRAY_SIZE];memset(outbuf, '\0', sizeof(char) * HZ2PY_OUTPUT_BUF_ARRAY_SIZE);QTextCodec* code;if (isUtf8){code = QTextCodec::codecForName("UTF-8");}else {code = QTextCodec::codecForName("gbk");}std::string name = code->fromUnicode(dest_chinese).data();char* inbuf = (char*)name.c_str();if (is_utf8_string(inbuf)) {printf("utf8:");pinyin_utf8(inbuf, outbuf);}else {printf("gb2312:");pinyin_gb2312(inbuf, outbuf, false, false, true, true, true);}return QString::fromLocal8Bit(outbuf);;
}bool CCendPinyinDataSearch::safeAddToOutbuf(char* outbuf,int &iOutbuf,char* pinyinValue,int iPinyinValue) {int iOutbufWord=1,iPinyinValueWord=1,m;for (m=0;m<iOutbuf;m++){ //统计已经转化的词数if (outbuf[m]==' '){iOutbufWord++;}}for (m=0;m<iPinyinValue;m++){ //统计多音字数目if (pinyinValue[m]=='|'){iPinyinValueWord++;}}bool flag=false; //是否超出范围int iNewOutbuf=iOutbufWord*iPinyinValue+iPinyinValueWord*iOutbuf+iOutbufWord+iPinyinValueWord-1-iOutbufWord*iPinyinValueWord;//想想为啥if (iNewOutbuf<HZ2PY_OUTPUT_BUF_ARRAY_SIZE){int totalWord=iOutbufWord*iPinyinValueWord;//空间申请char ** tempOutbuf=new char *[totalWord];if(!tempOutbuf){fprintf(stdout,"FATAL ERROR: out of memory (failed to malloc %d bytes)\n",totalWord);return false;}for(m=0;m<totalWord;m++){tempOutbuf[m]=new char[HZ2PY_OUTPUT_BUF_ARRAY_SIZE];if(!tempOutbuf[m]){fprintf(stdout,"FATAL ERROR: out of memory (failed to malloc %d bytes)\n",HZ2PY_OUTPUT_BUF_ARRAY_SIZE);while(m>0){delete [] tempOutbuf[m-1];m--;}delete[] tempOutbuf;return false;}}char *tmp1=outbuf;int n=0,i,j,k;while (*tmp1!='\0'||n==0) //注意,可能是最开始,故加上n==0{n+=iPinyinValueWord;i=0;while (*tmp1!=' '&&*tmp1!='\0'){for (m=n-iPinyinValueWord;m<n;m++){tempOutbuf[m][i]=*tmp1;}i++;tmp1++;}if (*tmp1==' '){tmp1++;}k=0;for (m=n-iPinyinValueWord;m<n;m++){j=i;while(k<iPinyinValue&&pinyinValue[k]!='|'&&pinyinValue[k]!='\0'){tempOutbuf[m][j]=pinyinValue[k];j++;k++;}if (pinyinValue[k]=='|'){k++;}tempOutbuf[m][j]='\0';}}//将所有的东西都整合到outbuf中outbuf[0]='\0';for (m=0;m<totalWord;m++){outbuf=strcat(outbuf,tempOutbuf[m]);if (m!=totalWord-1){outbuf=strcat(outbuf," ");}}iOutbuf=iNewOutbuf;//删除所申请的空间for (m=0;m<totalWord;m++){delete[] tempOutbuf[m];}delete[] tempOutbuf;flag=true;}return flag;
}void CCendPinyinDataSearch::pinyin_utf8(char* inbuf,char* outbuf, bool m_blnSimaple,bool polyphone_support,bool m_blnFirstBig,bool m_blnAllBiG,bool m_LetterEnd, bool m_unknowSkip,bool m_filterPunc)
{int inbuf_len=strlen(inbuf);char *_tmp;char *_tmp2;char py_tmp[HZ2PY_MAX_PINYIN_SIZE] = ""; //原始拼音char py_tmp2[HZ2PY_MAX_PINYIN_SIZE] = ""; //处理后的拼音int uni;int iOutbuf = 0;char sep='\''; //分隔符for (int i=0;i<inbuf_len;i++){if ( (unsigned char)inbuf[i] < 0x80 ) { //若是英文或数字if(m_filterPunc&&!(inbuf[i]>='a'&&inbuf[i]<='z'||inbuf[i]>='A'&&inbuf[i]<='Z')){continue;}if(!safeAddToOutbuf(outbuf,iOutbuf,&inbuf[i],1)) return;//if(m_LetterEnd) if(!safeAddToOutbuf(outbuf,iOutbuf,&sep,1)) return; //英文字母也打分隔符continue; }else if((inbuf[i]&0xE0)==0xC0){ //两个字符,表示是泛欧语系或斯拉夫语if(i+1>=inbuf_len){ //最后一个不够了return;}if(!m_unknowSkip){if(!safeAddToOutbuf(outbuf,iOutbuf,&inbuf[i],2)) return;}i++;}else if ((inbuf[i] & 0xF0) == 0xE0){ //三个字符,汉字、日语等亚洲字符if(i+2>=inbuf_len){ return;}uni = (((int)(inbuf[i] & 0x0F)) << 12)| (((int)(inbuf[i+1] & 0x3F)) << 6)| (inbuf[i+2] & 0x3F);if (uni>19967&&uni<40870){memset(py_tmp, '\0', sizeof(char)*HZ2PY_MAX_PINYIN_SIZE);memset(py_tmp2, '\0', sizeof(char)*HZ2PY_MAX_PINYIN_SIZE);strcpy_s(py_tmp,HZ2PY_MAX_PINYIN_SIZE, _pinyin_table_[uni - 19968]);_tmp = py_tmp;_tmp2 = py_tmp2;if (m_blnSimaple) //只支持首字母{*_tmp2 = *_tmp;_tmp ++;_tmp2 ++;while(*_tmp != '\0') {if (*_tmp == '|' || *(_tmp - 1) == '|') {*_tmp2 = *_tmp; _tmp2 ++;}_tmp ++;}_tmp2 = py_tmp2;}else{strcpy_s(py_tmp2,HZ2PY_MAX_PINYIN_SIZE, py_tmp);}if (m_blnAllBiG) //全部大写{while (*_tmp2!='\0'){if (*_tmp2>='a'&&*_tmp2<='z'){*_tmp2=*_tmp2-32;}_tmp2++;}_tmp2 = py_tmp2;}if(m_blnFirstBig){ //首字母大写if (*_tmp2>='a'&&*_tmp2<='z'){*_tmp2=*_tmp2-32;}}if (!polyphone_support) //不支持多音字{while(*_tmp2 != '\0') {if (*_tmp2 == '|') {*_tmp2 = '\0'; break;}_tmp2 ++;}_tmp2 = py_tmp2;}if(!safeAddToOutbuf(outbuf,iOutbuf,py_tmp2,strlen(py_tmp2))) return;if(m_LetterEnd) if(!safeAddToOutbuf(outbuf,iOutbuf,&sep,1)) return; i=i+2;}else if( !m_unknowSkip){if(!safeAddToOutbuf(outbuf,iOutbuf,&inbuf[i],3)) return;i=i+2;}}else if ( (inbuf[i] & 0xF8) == 0xF0 ){//四个字节if(i+3>=inbuf_len){ return;}if( !m_unknowSkip){if(!safeAddToOutbuf(outbuf,iOutbuf,&inbuf[i],4)) return;}i=i+3;}else if ( (inbuf[i] & 0xFC) == 0xF8 ){ //五个字节if(i+4>=inbuf_len){ return;}if( !m_unknowSkip){if(!safeAddToOutbuf(outbuf,iOutbuf,&inbuf[i],5)) return;}i=i+4;}else if ( (inbuf[i] & 0xFE) == 0xFC ){ //六个字节if(i+5>=inbuf_len){ return;}if( !m_unknowSkip){if(!safeAddToOutbuf(outbuf,iOutbuf,&inbuf[i],6)) return;}i=i+5;}else{if ( !m_unknowSkip){if(!safeAddToOutbuf(outbuf,iOutbuf,&inbuf[i],1)) return;}i++;//break;}}
}void CCendPinyinDataSearch::pinyin_gb2312(char * inbuf, char * outbuf, bool m_blnSimaple, bool polyphone_support, bool m_blnFirstBig, bool m_blnAllBiG, bool m_LetterEnd, bool m_unknowSkip, bool m_filterPunc)
{/*bool m_blnSimaple=false; //是否简拼bool m_blnFirstBig=false; //拼音第一个字母是否大写bool m_blnAllBiG=false; //拼音是否大写bool m_LetterEnd=false; //每个拼音后是否用分隔符bool m_unknowSkip=false; //未知拼音的字是否略过bool m_filterPunc=true; //是否过滤标点*/unsigned char ucHigh, ucLow;int nCode,j,k;int inbuf_len = strlen(inbuf);int iOutbuf = 0;char pinyinValue[HZ2PY_MAX_PINYIN_SIZE];char sep = '\'';for (int i = 0; i < inbuf_len; i++) {if ((unsigned char) inbuf[i] < 0x80) {if (m_filterPunc && !(inbuf[i] >= 'a' && inbuf[i] <= 'z' || inbuf[i] >= 'A' && inbuf[i] <= 'Z')) {continue;}if (!safeAddToOutbuf(outbuf, iOutbuf, &inbuf[i], 1)) return;//if(m_LetterEnd) if(!safeAddToOutbuf(outbuf,iOutbuf,&sep,1)) return; //英文字母也打分隔符continue;}ucHigh = (unsigned char) inbuf[i];ucLow = (unsigned char) inbuf[i + 1];if (ucHigh < 0xa1 || ucLow < 0xa1) continue;else nCode = (ucHigh - 0xa0) * 100 + ucLow - 0xa0;int strRes = findLetter(nCode, pinyinValue);if (m_unknowSkip && !strRes) {i++;continue;}if (!strRes) {if (!safeAddToOutbuf(outbuf, iOutbuf, &inbuf[i], 2)) return;i++;continue;}if (!polyphone_support) { //不支持多音字k=0;while (pinyinValue[k] != '\0') {if (pinyinValue[k] == '|') {pinyinValue[k] = '\0';break;}k++;}}if (m_blnSimaple) //只支持首字母{k = 1;j = 1;while (pinyinValue[k] != '\0') {if (pinyinValue[k] == '|' || pinyinValue[k - 1] == '|') {pinyinValue[j] = pinyinValue[k];j++;}k++;}pinyinValue[j] = '\0'; //只取第一个字符 }int iPinyinValue = strlen(pinyinValue);if (!m_blnFirstBig) //首字母是否大写{pinyinValue[0] = pinyinValue[0] + 32;for (j = 1; j < iPinyinValue; j++) {if (pinyinValue[j - 1] == '|' && pinyinValue[j] >= 'A' && pinyinValue[j] <= 'Z') {pinyinValue[j] = pinyinValue[j] + 32;}}}if (!m_blnAllBiG) {for (j = 1; j < iPinyinValue; j++) {if (pinyinValue[j] >= 'A' && pinyinValue[j] <= 'Z') { //strRes.SetAt(j, (strRes.GetAt(j) + 32));pinyinValue[j] = pinyinValue[j] + 32;}}}if (!safeAddToOutbuf(outbuf, iOutbuf, pinyinValue, iPinyinValue)) return;i++;if (m_LetterEnd) if (!safeAddToOutbuf(outbuf, iOutbuf, &sep, 1)) return;}
} int CCendPinyinDataSearch::findLetter(int nCode, char* strValue)
{ switch(nCode) { case 6325: case 6436: case 7571: case 7925: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"A");break; case 6263: case 6440: case 7040: case 7208: case 7451: case 7733: case 7945: case 8616:strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"AI"); break; case 5847: case 5991: case 6278: case 6577: case 6654: case 7281: case 7907: case 8038: case 8786: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"AN"); break; strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"ANG"); break; case 5974: case 6254: case 6427: case 6514: case 6658: case 6959: case 7033: case 7081: case 7365: case 8190: case 8292: case 8643: case 8701: case 8773: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"AO"); break; case 6056: case 6135: case 6517: case 7857: case 8446: case 8649: case 8741: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BA"); break; case 6267: case 6334: case 7494: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BAI"); break; case 5870: case 5964: case 7851: case 8103: case 8113: case 8418: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BAN"); break; case 6182: case 6826: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BANG"); break; case 6165: case 7063: case 7650: case 8017: case 8157: case 8532: case 8621: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BAO"); break; case 5635: case 5873: case 5893: case 5993: case 6141: case 6703: case 7753: case 8039: case 8156: case 8645: case 8725: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BEI"); break; case 5946: case 5948: case 7458: case 7928: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BEN"); break; case 6452: case 7420: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BENG"); break; case 5616: case 5734: case 6074: case 6109: case 6221: case 6333: case 6357: case 6589: case 6656: case 6725: case 6868: case 6908: case 6986: case 6994: case 7030: case 7052: case 7221: case 7815: case 7873: case 7985: case 8152: case 8357: case 8375: case 8387: case 8416: case 8437: case 8547: case 8734: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BI"); break; case 5650: case 5945: case 6048: case 6677: case 6774: case 7134: case 7614: case 7652: case 7730: case 7760: case 8125: case 8159: case 8289: case 8354: case 8693: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BIAN"); break; case 7027: case 7084: case 7609: case 7613: case 7958: case 7980: case 8106: case 8149: case 8707: case 8752: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BIAO"); break; case 8531: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BIE"); break; case 5747: case 6557: case 7145: case 7167: case 7336: case 7375: case 7587: case 7957: case 8738: case 8762: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BIN"); break; case 5787: case 5891: case 6280: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BING"); break; case 5781: case 6403: case 6636: case 7362: case 7502: case 7771: case 7864: case 8030: case 8404: case 8543: case 8559: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BO"); break; case 6318: case 6945: case 7419: case 7446: case 7848: case 7863: case 8519: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"BU"); break; case 6474: case 7769: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CA"); break; strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CAI"); break; case 6978: case 7078: case 7218: case 8451: case 8785: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CAN"); break; case 5687: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CANG"); break; case 6448: case 6878: case 8309: case 8429: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CAO"); break; case 6692:strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CE"); break; case 6515: case 6825: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CEN"); break; case 6465: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CENG"); break; case 6639: case 6766: case 7017: case 7230: case 7311: case 7322: case 7363: case 7942: case 7979: case 8135: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHA"); break; case 5713: case 7846: case 8091: case 8218: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHAI"); break; case 5770: case 5838: case 6159: case 6667: case 6893: case 6904: case 6981: case 7031: case 7086: case 7472: case 7688: case 7966: case 8324: case 8580: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHAN"); break; case 5686: case 5943: case 6041: case 6137: case 6660: case 6568: case 6749: case 7029: case 7047: case 7438: case 7509: case 8680: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHANG"); break; case 6687: case 7443: case 8173: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHAO"); break; case 5969: case 7726: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHE"); break; case 5840: case 5863: case 6251: case 6433: case 6923: case 7201: case 7320: case 7755: case 8619: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHEN"); break; case 5609: case 5984: case 7239: case 7263: case 7583: case 7810: case 7881: case 7905: case 8146: case 8241: case 8508: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHENG"); break; case 5749: case 6015: case 6061: case 6319: case 6374: case 6420: case 6445: case 6633: case 7042: case 7523: case 7787: case 8023: case 8101: case 8161: case 8231: case 8304: case 8355: case 8388: case 8489: case 8556: case 8746: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHI"); break; case 6091: case 6671: case 6731: case 8409: case 8430: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHONG"); break; case 5717: case 6492: case 6716: case 8112: case 8637: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHOU"); break; case 5601: case 5927: case 6680: case 6732: case 7109: case 7238: case 7290: case 7343: case 8150: case 8260: case 8573: case 8777: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHU"); break; case 6285: case 6408: case 7590: case 8563: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHUAI"); break; case 6622: case 6955: case 7516: case 7843: case 8413: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHUAN"); break; case 6675: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHUANG"); break; case 5879: case 7302: case 7319: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHUI"); break; case 6127: case 8040: case 8277: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHUN"); break; case 7401: case 8554: case 8626: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CHUO"); break; case 6075: case 6358: case 7684: case 8043: case 8457: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CI"); break; case 6042:case 6840: case 7085: case 7193: case 7214: case 7240: strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"CONG"); break; case 7308:case 7403: case 7577:strcpy_s(strValue,HZ2PY_MAX_PINYIN_SIZE,"COU"); break; case 6180:case 6562:case 6607:case 7367:case 8501:case 8530:case 8577:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CU");break;case 5764:case 6305:case 7664:case 7973:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CUAN");break;case 6718:case 6145:case 6393:case 7213:case 7333:case 7505:case 8631:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CUI");break;case 6666:case 8169:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CUN");break;case 5640:case 6547:case 7566:case 7917:case 7983:case 8078:case 8526:case 8567:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CUO");break;case 6239:case 6353:case 6410:case 6682:case 7007:case 8155:case 8346:case 8716:case 8718:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DA");break;case 6004:case 6316:case 6523:case 6942:case 7110:case 7173:case 8776:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DAI");break;case 5757:case 6144:case 6402:case 7373:case 7470:case 7781:case 8067:case 8087:case 8185:case 8376:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DAN");break;case 5852:case 5942:case 6148:case 6920:case 7724:case 7885:case 8141:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DANG");break;case 6322:case 6665:case 7514:case 8478:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DAO");break;case 7929:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DE");break;case 6466:case 6556:case 7413:case 7767:case 7975:case 8403:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DENG");break;case 5621:case 5765:case 5814:case 5848:case 5901:case 5970:case 6122:case 6454:case 7023:case 7116:case 7260:case 7306:case 7475:case 7738:case 7758:case 7791:case 7965:case 8438:case 8730:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DI");break;case 6439:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DIA");break;case 5871:case 5967:case 6559:case 7172:case 7868:case 8116:case 8118:case 8401:case 8558:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DIAN");break;case 7886:case 8585:case 8684:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DIAO");break;case 5976:case 6006:case 6273:case 6409:case 7526:case 8012:case 8183:case 8562:case 8688:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DIE");break;case 5674:case 6404:case 7164:case 7575:case 7754:case 7814:case 8059:case 8184:case 8490:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DING");break;case 7891:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DIU");break;case 5977:case 6343:case 6520:case 6528:case 7517:case 7543:case 7556:case 7747:case 8020:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DONG");break;case 6190:case 8128:case 8229:case 8391:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DOU");break;case 6022:case 6429:case 6834:case 7292:case 7525:case 8328:case 8338:case 8739:case 8782:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DU");break;case 7318:case 7649:case 8393:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DUAN");break;case 7701:case 7713:case 7752:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DUI");break;case 6771:case 7632:case 7727:case 7766:case 7779:case 7970:case 8527:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DUN");break;case 6345:case 6365:case 6785:case 7122:case 7876:case 8154:case 8566:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DUO");break;case 5612:case 5832:case 5844:case 5949:case 6035:case 6113:case 6164:case 6332:case 6721:case 6977:case 7025:case 7378:case 7581:case 7916:case 7941:case 8042:case 8206:case 8689:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "E");break;case 6176:case 6284:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "EN");break;case 5706:case 6939:case 7177:case 7879:case 8025:case 8660:case 2294:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ER");break;case 5950:case 7732:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FA");break;case 6212:case 6232:case 6506:case 7283:case 7660:case 7818:case 8576:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FAN");break;case 5890:case 7242:case 7853:case 8419:case 8648:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FANG");break;case 6032:case 6584:case 6713:case 6839:case 6990:case 7119:case 7328:case 7572:case 7619:case 7673:case 7948:case 8082:case 8267:case 8385:case 8468:case 8613:case 8678:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FEI");break;case 5739:case 6915:case 7291:case 8687:case 8787:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FEN");break;case 5726:case 5926:case 6155:case 6384:case 6767:case 7731:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FENG");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FO");break;case 8330:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FOU");break;case 5775:case 5776:case 5914:case 6029:case 6062:case 6119:case 6142:case 6252:case 6327:case 6505:case 6686:case 6870:case 6985:case 7058:case 7066:case 7106:case 7108:case 7285:case 7471:case 7680:case 7741:case 7774:case 7775:case 7823:case 7991:case 8005:case 8222:case 8261:case 8280:case 8283:case 8479:case 8535:case 8538:case 8654:case 8691:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FU");break;case 6246:case 7056:case 7057:case 7424:case 7837:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GA");break;case 5604:case 5875:case 5982:case 7414:case 7464:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GAI");break;case 5965:case 6053:case 6247:case 6306:case 6779:case 6838:case 6887:case 7104:case 7347:case 7426:case 7723:case 8065:case 8491:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GAN");break;case 7716:case 7824:case 8364:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GANG");break;case 5626:case 5830:case 5912:case 6227:case 7141:case 7332:case 7334:case 7429:case 7915:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GAO");break;case 5610:case 5678:case 5933:case 5957:case 6010:case 6435:case 7092:case 7501:case 7585:case 7749:case 7951:case 8143:case 8220:case 8420:case 8732:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GE");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GEI");break;case 5608:case 6102:case 6371:case 8462:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GEN");break;case 6376:case 6657:case 7114:case 8665:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GENG");break;case 7178:case 7537:case 8228:case 8601:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GONG");break;case 5694:case 5824:case 6524:case 6960:case 7037:case 7135:case 7259:case 7477:case 7616:case 8349:case 8384:case 8724:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GOU");break;case 5637:case 5812:case 6152:case 6536:case 6773:case 7284:case 7379:case 7484:case 7486:case 7591:case 7617:case 7813:case 7825:case 7860:case 7932:case 8019:case 8083:case 8233:case 8494:case 8593:case 8681:case 8729:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GU");break;case 5652:case 5820:case 6341:case 7273:case 7550:case 8027:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUA");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUAI");break;case 5736:case 6124:case 6272:case 6842:case 7834:case 8057:case 8170:case 8704:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUAN");break;case 6359:case 6578:case 7270:case 7555:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUANG");break;case 5648:case 5659:case 6649:case 7003:case 7277:case 7433:case 7448:case 8007:case 8394:case 8657:case 8712:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUI");break;case 5782:case 7121:case 7762:case 8671:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUN");break;case 5769:case 6266:case 6335:case 6494:case 6538:case 6603:case 7304:case 7529:case 8188:case 8268:case 8269:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUO");break;case 7894:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HA");break;case 6443:case 7560:case 8516:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HAI");break;case 5885:case 6153:case 6294:case 6759:case 6911:case 7447:case 7642:case 8192:case 8205:case 8232:case 8793:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HAN");break;case 6776:case 7112:case 8194:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HANG");break;case 6179:case 6222:case 6438:case 6467:case 6909:case 6916:case 7427:case 8009:case 8211:case 8226:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HAO");break;case 5813:case 5932:case 5954:case 6432:case 6756:case 7434:case 7833:case 8202:case 8234:case 8471:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HE");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HEI");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HEN");break;case 6231:case 7181:case 7276:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HENG");break;case 5768:case 5774:case 5807:case 6106:case 6214:case 6216:case 6740:case 6792:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HONG");break;case 6009:case 6565:case 6943:case 8090:case 8383:case 8455:case 8655:case 8731:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HOU");break;case 5792:case 6392:case 6481:case 6518:case 6609:case 6679:case 6717:case 6816:case 6879:case 7190:case 7346:case 7385:case 7618:case 7635:case 7646:case 7670:case 7672:case 7679:case 8013:case 8032:case 8041:case 8055:case 8343:case 8513:case 8590:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HU");break;case 7072:case 7275:case 7725:case 7892:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUA");break;case 8555:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUAI");break;case 5928:case 6140:case 6307:case 6487:case 6621:case 6801:case 6829:case 6881:case 6930:case 6953:case 7157:case 7944:case 8673:case 8763:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUAN");break;case 5882:case 6569:case 6850:case 6874:case 6956:case 7211:case 7533:case 8105:case 8308:case 8382:case 8692:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUANG");break;case 5822:case 6078:case 6086:case 6205:case 6352:case 6360:case 6425:case 6736:case 6807:case 6811:case 6971:case 7132:case 7185:case 7445:case 7703:case 8219:case 8319:case 8766:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUI");break;case 5827:case 6638:case 6752:case 6867:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUN");break;case 5669:case 6229:case 6311:case 6475:case 6623:case 7856:case 7933:case 7976:case 8175:case 8322:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUO");break;case 5629:case 5632:case 5662:case 5705:case 5742:case 5952:case 6024:case 6033:case 6193:case 6210:case 6265:case 6320:case 6350:case 6383:case 6507:case 6553:case 6809:case 6976:case 7087:case 7160:case 7165:case 7314:case 7374:case 7410:case 7411:case 7469:case 7473:case 7487:case 7620:case 7722:case 7831:case 7990:case 8002:case 8104:case 8217:case 8337:case 8339:case 8463:case 8550:case 8611:case 8661:case 8674:case 8757:case 8768:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JI");break;case 5704:case 5903:case 6171:case 6521:case 6804:case 6940:case 7176:case 7409:case 7546:case 7702:case 7882:case 7956:case 8072:case 8142:case 8244:case 8353:case 8434:case 8542:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIA");break;case 5752:case 5841:case 5857:case 6149:case 6183:case 6286:case 6853:case 6931:case 6932:case 7144:case 7237:case 7305:case 7407:case 7415:case 7480:case 7489:case 7506:case 7576:case 7790:case 7921:case 8047:case 8148:case 8340:case 8469:case 8534:case 8561:case 8668:case 8721:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIAN");break;case 6092:case 6814:case 7113:case 7154:case 7481:case 7768:case 8180:case 8461:case 8488:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIANG");break;case 5714:case 5753:case 6020:case 6090:case 6256:case 6461:case 6572:case 7015:case 7524:case 8008:case 8052:case 8252:case 8520:case 8551:case 8662:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIAO");break;case 5806:case 5821:case 6255:case 6414:case 7028:case 7061:case 7278:case 7757:case 8060:case 8201:case 8227:case 8441:case 8658:case 8726:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIE");break;case 5865:case 6103:case 6132:case 6468:case 6643:case 6659:case 7138:case 7210:case 7340:case 7465:case 7478:case 8138:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIN");break;case 5751:case 5869:case 6128:case 6616:case 6729:case 6794:case 6941:case 6982:case 7026:case 7534:case 7554:case 7570:case 7626:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIANG");break;case 6936:case 7671:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIONG");break;case 5754:case 6417:case 6746:case 7249:case 7274:case 8015:case 8053:case 8481:case 8761:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIU");break;case 5738:case 5810:case 6036:case 6058:case 6076:case 6268:case 6965:case 6980:case 7202:case 7307:case 7316:case 7323:case 7357:case 7381:case 7488:case 7611:case 7850:case 7924:case 8022:case 8132:case 8153:case 8482:case 8522:case 8565:case 8620:case 8634:case 8722:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JU");break;case 5918:case 6590:case 6824:case 7280:case 7835:case 7935:case 7952:case 8633:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JUAN");break;case 5642:case 5667:case 5860:case 5939:case 6207:case 6421:case 6457:case 6469:case 6540:case 6617:case 7062:case 7169:case 7286:case 7351:case 7663:case 7967:case 8574:case 8591:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JUE");break;case 6260:case 8168:case 8362:case 8769:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JUN");break;case 5671:case 6339:case 7544:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KA");break;case 5660:case 5978:case 6160:case 6673:case 6693:case 7888:case 7920:case 7939:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KAI");break;case 5709:case 6108:case 7412:case 7772:case 7811:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KAN");break;case 5688:case 6742:case 7854:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KANG");break;case 6974:case 7264:case 7491:case 7877:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KAO");break;case 6430:case 6519:case 6701:case 6859:case 7076:case 7128:case 7170:case 7380:case 7520:case 7807:case 7861:case 7930:case 7993:case 8066:case 8129:case 8204:case 8282:case 8733:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KE");break;case 8144:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KEN");break;case 7912:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KENG");break;case 5737:case 6539:case 8377:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KONG");break;case 6050:case 6202:case 6321:case 7778:case 8356:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KOU");break;case 5658:case 6005:case 6423:case 7111:case 8728:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KU");break;case 5708:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KUA");break;case 5665:case 5906:case 6364:case 6586:case 7558:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KUAI");break;case 8737:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KUAN");break;case 5818:case 5831:case 5887:case 5959:case 6237:case 6349:case 7094:case 7460:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KUANG");break;case 5624:case 5649:case 5771:case 6162:case 6281:case 6413:case 6416:case 6720:case 6951:case 7450:case 7805:case 8606:case 8743:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KUI");break;case 6204:case 6245:case 6458:case 6618:case 6928:case 7152:case 7841:case 8051:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LIAO");break;case 5793:case 5988:case 6270:case 6354:case 6803:case 8483:case 8581:case 8764:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LIE");break;case 6194:case 6388:case 6555:case 6662:case 6733:case 6964:case 7361:case 7405:case 7602:case 7812:case 8452:case 8579:case 8775:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LIN");break;case 5925:case 6063:case 6342:case 6482:case 6786:case 7117:case 7258:case 7289:case 7418:case 8186:case 8240:case 8465:case 8676:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LING");break;case 6815:case 6962:case 7082:case 7124:case 7628:case 7654:case 7919:case 7954:case 8050:case 8644:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LIU");break;case 5966:case 6055:case 6781:case 7171:case 7248:case 7542:case 7735:case 8110:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LONG");break;case 5745:case 6168:case 6422:case 6548:case 7946:case 8092:case 8179:case 8287:case 8735:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LOU");break;case 6744:case 7321:case 7586:case 7918:case 7989:case 8158:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LV");break;case 5968:case 6303:case 6464:case 6782:case 6843:case 6885:case 6954:case 7220:case 7251:case 7354:case 7391:case 7404:case 7510:case 7545:case 7969:case 8021:case 8056:case 8392:case 8421:case 8652:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LU");break;case 5785:case 7014:case 7279:case 8029:case 8639:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LUAN");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LUE");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LUN");break;case 5732:case 5789:case 6093:case 6259:case 6291:case 6604:case 6788:case 6880:case 7183:case 7301:case 7565:case 7961:case 8107:case 8635:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LUO");break;case 6328:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "M");break;case 6373:case 6579:case 7054:case 7231:case 8301:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MA");break;case 5929:case 6104:case 8618:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MAI");break;case 6012:case 6503:case 7147:case 7655:case 7960:case 8209:case 8293:case 8709:case 8720:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MAN");break;case 5888:case 6861:case 7743:case 8294:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MANG");break;case 5783:case 6066:case 6525:case 6787:case 7203:case 7436:case 7483:case 7503:case 7624:case 7714:case 7806:case 8317:case 8754:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MAO");break;case 6114:case 6550:case 6613:case 6828:case 6856:case 7325:case 7949:case 8044:case 8139:case 8740:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MEI");break;case 6249:case 7643:case 7715:case 7845:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MEN");break;case 5934:case 6189:case 6211:case 6734:case 7592:case 7770:case 8221:case 8276:case 8323:case 8427:case 8431:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MENG");break;case 5634:case 5855:case 6234:case 6368:case 6455:case 6608:case 6772:case 6921:case 6984:case 7563:case 7682:case 8445:case 8767:case 8771:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MI");break;case 6770:case 6837:case 6847:case 7579:case 7777:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MIAN");break;case 6387:case 6967:case 7131:case 7149:case 7234:case 7721:case 7780:case 8037:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MIAO");break;case 5631:case 6367:case 8326:case 8390:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MIE");break;case 6069:case 6526:case 6741:case 6793:case 7137:case 7168:case 7175:case 7710:case 8710:case 8628:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MIN");break;case 5804:case 6088:case 6873:case 7452:case 7808:case 8504:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MING");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MIU");break;case 5851:case 6052:case 6175:case 6641:case 7038:case 7366:case 7950:case 7987:case 8102:case 8182:case 8586:case 8588:case 8765:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MO");break;case 5716:case 6372:case 7788:case 8254:case 8290:case 8642:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MOU");break;case 5679:case 5973:case 6057:case 6769:case 7504:case 7866:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MU");break;case 6437:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "N");break;case 6264:case 7539:case 7953:case 8136:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NA");break;case 5630:case 6021:case 6133:case 7245:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NAI");break;case 6411:case 6478:case 6479:case 7310:case 7578:case 8279:case 8486:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NAN");break;case 6313:case 6476:case 6646:case 7457:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NANG");break;case 5611:case 5981:case 6346:case 6614:case 7207:case 7748:case 7883:case 8245:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NAO");break;case 5811:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NE");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NEI");break;case 7705:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NEN");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NENG");break;case 5703:case 5972:case 6605:case 6685:case 7439:case 7627:case 7711:case 7794:case 7874:case 8682:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NI");break;case 5605:case 5994:case 7393:case 8004:case 8651:case 8683:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NIAN");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NIANG");break;case 6064:case 7053:case 7569:case 8433:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NIAO");break;case 5877:case 6233:case 6431:case 8208:case 8411:case 8570:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NIE");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NIN");break;case 5690:case 6344:case 6924:case 8187:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NING");break;case 6580:case 6678:case 7004:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NIU");break;case 5715:case 6370:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NONG");break;case 8181:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NOU");break;case 6983:case 7032:case 7059:case 7069:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NU");break;case 7704:case 7847:case 8412:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NV");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NUAN");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NUE");break;case 5748:case 6289:case 6386:case 7927:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NUO");break;case 6424:case 6462:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "O");break;case 5809:case 6670:case 7417:case 8178:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "OU");break;case 6166:case 7243:case 8365:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PA");break;case 5729:case 6169:case 6363:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PAI");break;case 6761:case 6790:case 8140:case 8165:case 8320:case 8571:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PAN");break;case 6561:case 6872:case 6944:case 8306:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PANG");break;case 6243:case 6583:case 6650:case 7567:case 8069:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PAO");break;case 6446:case 6490:case 7623:case 7934:case 8512:case 8612:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PEI");break;case 6852:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PEN");break;case 6001:case 6456:case 6681:case 8318:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PENG");break;case 5607:case 5682:case 5880:case 5892:case 5915:case 5960:case 6017:case 6037:case 6308:case 6472:case 6647:case 6836:case 7039:case 7102:case 7233:case 7422:case 7802:case 7828:case 7875:case 8117:case 8166:case 8223:case 8271:case 8589:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PI");break;case 5850:case 7073:case 7490:case 7561:case 8470:case 8568:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PIAN");break;case 5666:case 6449:case 7046:case 7146:case 7372:case 7809:case 8310:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PIAO");break;case 6054:case 7513:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PIE");break;case 7041:case 6253:case 7016:case 7315:case 7482:case 8213:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PIN");break;case 5723:case 7019:case 7250:case 8650:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PING");break;case 5647:case 5922:case 7174:case 7839:case 7862:case 8011:case 8345:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PO");break;case 5786:case 6269:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "POU");break;case 5773:case 6459:case 6863:case 6907:case 7217:case 7511:case 7968:case 7972:case 8575:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PU");break;case 5633:case 5725:case 5963:case 6027:case 6046:case 6089:case 6129:case 6134:case 6161:case 6213:case 6366:case 6450:case 6508:case 6510:case 6764:case 6831:case 7075:case 7118:case 7187:case 7189:case 7229:case 7271:case 7342:case 7440:case 7605:case 7687:case 7712:case 7751:case 8193:case 8251:case 8264:case 8475:case 8476:case 8572:case 8702:case 8772:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QI");break;case 6154:case 8736:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIA");break;case 5727:case 5761:case 5868:case 6023:case 6045:case 6071:case 6271:case 6509:case 6705:case 6727:case 6925:case 6926:case 6929:case 7155:case 7293:case 7541:case 7709:case 7852:case 8215:case 8373:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIAN");break;case 6762:case 7045:case 7341:case 7408:case 7633:case 7926:case 7947:case 7974:case 8163:case 8262:case 8439:case 8536:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIANG");break;case 5668:case 5829:case 5859:case 6081:case 6529:case 6724:case 6730:case 7352:case 7745:case 8546:case 8719:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIAO");break;case 5907:case 6711:case 7010:case 7492:case 7938:case 8370:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIE");break;case 6043:case 6276:case 6336:case 6426:case 6463:case 6858:case 7353:case 7923:case 8291:case 8432:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIN");break;case 6060:case 6485:case 7349:case 7764:case 8263:case 8332:case 8368:case 8605:case 8675:case 8784:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QING");break;case 5886:case 6068:case 8123:case 8243:case 8344:case 8528:case 8638:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIONG");break;case 5720:case 5947:case 6576:case 6848:case 6947:case 6957:case 7317:case 7468:case 8216:case 8239:case 8288:case 8435:case 8460:case 8690:case 8792:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIU");break;case 5816:case 5930:case 6201:case 6230:case 6511:case 6573:case 6754:case 7219:case 7479:case 7512:case 7552:case 7678:case 7765:case 8119:case 8248:case 8329:case 8480:case 8636:case 8781:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QU");break;case 5825:case 6085:case 6710:case 7125:case 7390:case 7816:case 7893:case 8273:case 8360:case 8760:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QUAN");break;case 6755:case 6758:case 7708:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QUE");break;case 6950:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QUN");break;case 6059:case 8237:case 8755:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RAN");break;case 7692:case 8006:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RANG");break;case 6073:case 7012:case 7267:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RAO");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RE");break;case 5680:case 6083:case 6156:case 6631:case 7377:case 7994:case 8137:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "REN");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RENG");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RI");break;case 6541:case 6585:case 7337:case 7532:case 8278:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RONG");break;case 8459:case 8569:case 8723:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ROU");break;case 6174:case 6224:case 6473:case 6818:case 6865:case 6906:case 7140:case 7908:case 8164:case 8212:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RU");break;case 7535:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RUAN");break;case 6039:case 6208:case 7236:case 7803:case 8224:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RUI");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RUN");break;case 5728:case 8372:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RUO");break;case 5606:case 5677:case 7493:case 7559:case 7610:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SA");break;case 6471:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SAI");break;case 6644:case 7507:case 8454:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SAN");break;case 6290:case 7763:case 8210:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SANG");break;case 6003:case 7150:case 7156:case 7593:case 8094:case 8694:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SAO");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SE");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SEN");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SENG");break;case 6394:case 7606:case 7901:case 8080:case 8436:case 8614:case 8672:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHA");break;case 8507:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHAI");break;case 5663:case 5808:case 5923:case 5979:case 6047:case 6890:case 7009:case 7051:case 7083:case 7594:case 7844:case 8062:case 8321:case 8414:case 8539:case 8713:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHAN");break;case 5980:case 7120:case 7368:case 7656:case 8592:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUANG");break;case 5931:case 6070:case 6891:case 7228:case 8366:case 8425:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHAO");break;case 5639:case 5760:case 6606:case 6860:case 7608:case 7820:case 8774:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHE");break;case 5837:case 6123:case 6351:case 6841:case 7309:case 7547:case 7982:case 8255:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHEN");break;case 6551:case 7441:case 7782:case 8347:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHENG");break;case 5854:case 5985:case 6110:case 6173:case 6317:case 7388:case 7459:case 7634:case 7870:case 8307:case 8334:case 8363:case 8525:case 8669:case 8685:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHI");break;case 6587:case 7123:case 8428:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHOU");break;case 5731:case 5951:case 6136:case 6283:case 6780:case 6888:case 7013:case 7508:case 7582:case 7988:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHU");break;case 6407:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUA");break;case 8316:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUAI");break;case 6737:case 6844:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUAN");break;case 7055:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUANG");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUI");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUN");break;case 6184:case 6287:case 6989:case 7335:case 7869:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUO");break;case 5643:case 5778:case 5944:case 6348:case 6765:case 6784:case 6889:case 7006:case 7065:case 7133:case 7675:case 7940:case 8024:case 8174:case 8247:case 8351:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SI");break;case 5801:case 6131:case 6534:case 6552:case 6676:case 6704:case 6833:case 8121:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SONG");break;case 5937:case 6220:case 6418:case 6453:case 6640:case 6849:case 7612:case 7804:case 7943:case 8284:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SOU");break;case 5777:case 5853:case 6188:case 6428:case 6726:case 6819:case 8389:case 8602:case 8653:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SU");break;case 6601:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SUAN");break;case 5839:case 6120:case 6901:case 6968:case 7661:case 7785:case 7801:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SUI");break;case 6105:case 6588:case 6624:case 7330:case 8632:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SUN");break;case 6379:case 6434:case 6442:case 7022:case 7288:case 7792:case 8440:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SUO");break;case 6743:case 6866:case 6961:case 7329:case 7719:case 7872:case 8533:case 8703:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TA");break;case 5902:case 6223:case 6330:case 7070:case 7536:case 7638:case 7849:case 8544:case 8656:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TAI");break;case 5916:case 6903:case 7428:case 7694:case 7867:case 7936:case 8191:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TAN");break;case 5746:case 6491:case 6871:case 7209:case 7344:case 7906:case 7959:case 8177:case 8305:case 8311:case 8442:case 8517:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TANG");break;case 5627:case 6391:case 6812:case 7226:case 7666:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TAO");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "1845 餐");break;case 6315:case 7693:case 7911:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TE");break;case 7588:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TENG");break;case 5735:case 6709:case 6949:case 7130:case 8035:case 8151:case 8514:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TI");break;case 6261:case 6735:case 6757:case 7369:case 7817:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TIAN");break;case 5712:case 7686:case 8127:case 8272:case 8352:case 8448:case 8622:case 8670:case 8756:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TIAO");break;case 6138:case 8749:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TIE");break;case 6080:case 6167:case 7035:case 7272:case 7890:case 8249:case 8610:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TING");break;case 5701:case 5758:case 6077:case 6444:case 6690:case 6892:case 7737:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TONG");break;case 7855:case 7822:case 8727:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TOU");break;case 6002:case 6117:case 6143:case 7842:case 8509:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TU");break;case 6250:case 6972:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TUAN");break;case 7653:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TUI");break;case 5759:case 6629:case 7453:case 7564:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TUN");break;case 5617:case 5702:case 5971:case 6653:case 6791:case 7256:case 7262:case 7350:case 7740:case 8374:case 8502:case 8541:case 8630:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TUO");break;case 5684:case 7020:case 7580:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WA");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WAI");break;case 5664:case 6025:case 6150:case 7093:case 7126:case 7194:case 7568:case 7821:case 8274:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WAN");break;case 5672:case 6244:case 6715:case 7394:case 8745:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WANG");break;case 5743:case 5835:case 5881:case 5883:case 6158:case 6217:case 6488:case 6501:case 6543:case 6545:case 6611:case 6612:case 6739:case 6777:case 6802:case 6822:case 6952:case 7024:case 7166:case 7224:case 7406:case 7631:case 7648:case 8084:case 8426:case 8659:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WEI");break;case 5656:case 6751:case 6775:case 7223:case 8609:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WEN");break;case 6178:case 6219:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WENG");break;case 5733:case 6111:case 6502:case 6855:case 7531:case 7750:case 8627:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WO");break;case 5603:case 5685:case 5867:case 5889:case 5956:case 6044:case 6377:case 6648:case 6668:case 6672:case 6820:case 6927:case 6935:case 6992:case 7036:case 7080:case 7227:case 7485:case 7641:case 8036:case 8045:case 8077:case 8258:case 8640:case 8789:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WU");break;case 5750:case 5766:case 5884:case 5913:case 6130:case 6163:case 6191:case 6241:case 6381:case 6567:case 6630:case 6750:case 6827:case 6832:case 6979:case 7050:case 7184:case 7356:case 7456:case 7474:case 7604:case 7668:case 7689:case 7691:case 8010:case 8122:case 8265:case 8303:case 8312:case 8410:case 8424:case 8443:case 8449:case 8466:case 8521:case 8791:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XI");break;case 6340:case 6582:case 6958:case 7206:case 7252:case 7744:case 8093:case 8333:case 8779:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIA");break;case 5794:case 5823:case 6040:case 6118:case 6226:case 6513:case 6593:case 6963:case 7021:case 7515:case 7662:case 7676:case 8034:case 8079:case 8225:case 8358:case 8444:case 8503:case 8548:case 8549:case 8617:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIAN");break;case 6028:case 6157:case 6635:case 6652:case 7088:case 7129:case 8313:case 8663:case 8747:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIANG");break;case 6356:case 6537:case 6876:case 6948:case 7071:case 7115:case 7241:case 7253:case 8257:case 8367:case 8379:case 8744:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIAO");break;case 5741:case 5784:case 5936:case 5938:case 6215:case 6302:case 6619:case 6661:case 6845:case 6912:case 6966:case 7105:case 7151:case 7331:case 7339:case 8583:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIE");break;case 5622:case 6016:case 7431:case 7607:case 8646:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIN");break;case 5874:case 6084:case 6309:case 6712:case 7742:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XING");break;case 6026:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIONG");break;case 6361:case 6522:case 6642:case 6651:case 6869:case 8028:case 8587:case 8759:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIU");break;case 5828:case 5935:case 5955:case 6203:case 6810:case 6851:case 7179:case 7282:case 7667:case 7776:case 8167:case 8458:case 8515:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XU");break;case 5756:case 5846:case 6170:case 6279:case 6789:case 6854:case 6886:case 7215:case 7324:case 7449:case 7637:case 7651:case 7759:case 7871:case 7964:case 8071:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XUAN");break;case 5842:case 7720:case 8529:case 8708:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XUE");break;case 5767:case 5908:case 5987:case 6087:case 6101:case 6206:case 6225:case 6530:case 6563:case 6620:case 6694:case 6813:case 6817:case 7454:case 8131:case 8524:case 8664:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XUN");break;case 5683:case 5975:case 6275:case 6512:case 6934:case 7011:case 7180:case 7266:case 7518:case 7728:case 7793:case 8073:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YA");break;case 5641:case 5645:case 5718:case 5740:case 5780:case 5861:case 5917:case 5919:case 6030:case 6146:case 6535:case 6691:case 6738:case 6753:case 6846:case 6857:case 6991:case 7044:case 7192:case 7360:case 7444:case 7557:case 7645:case 7827:case 8359:case 8506:case 8742:case 8748:case 8790:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YAN");break;case 6564:case 6683:case 7630:case 7640:case 7706:case 8253:case 8717:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YANG");break;case 5618:case 5619:case 6326:case 6542:case 6570:case 7159:case 7182:case 7235:case 7387:case 7455:case 7540:case 7902:case 8046:case 8126:case 8477:case 8705:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YAO");break;case 5644:case 5843:case 5894:case 6262:case 7442:case 7639:case 7884:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YE");break;case 5655:case 5657:case 5670:case 5693:case 5711:case 5817:case 5961:case 5992:case 6018:case 6051:case 6072:case 6218:case 6236:case 6240:case 6258:case 6314:case 6329:case 6355:case 6362:case 6441:case 6470:case 6527:case 6558:case 6602:case 6634:case 6688:case 6689:case 6708:case 6884:case 6938:case 7068:case 7143:case 7376:case 7383:case 7461:case 7629:case 7658:case 7784:case 7838:case 7955:case 7978:case 8074:case 8089:case 8115:case 8120:case 8270:case 8415:case 8464:case 8472:case 8493:case 8780:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YI");break;case 5623:case 5920:case 5983:case 6007:case 6065:case 6337:case 6419:case 6594:case 6625:case 6806:case 7519:case 7887:case 8111:case 8230:case 8615:case 8624:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YIN");break;case 5788:case 5911:case 6067:case 6094:case 6126:case 6151:case 6186:case 6292:case 6451:case 6663:case 6862:case 6875:case 6913:case 7188:case 7212:case 7326:case 7584:case 8048:case 8108:case 8203:case 8331:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YING");break;case 6401:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YO");break;case 5724:case 5953:case 6013:case 6415:case 6728:case 7163:case 7962:case 8014:case 8711:case 8751:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YONG");break;case 5653:case 5692:case 5707:case 6112:case 6115:case 6121:case 6347:case 6483:case 6922:case 7254:case 7364:case 7527:case 7880:case 8064:case 8236:case 8242:case 8286:case 8647:case 8778:case 8788:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YOU");break;case 5614:case 5625:case 5681:case 5722:case 5836:case 5845:case 6139:case 6187:case 6277:case 6484:case 6486:case 6546:case 6592:case 6632:case 6637:case 6655:case 6748:case 6987:case 6993:case 7005:case 7090:case 7204:case 7437:case 7476:case 7573:case 7603:case 7622:case 7647:case 7659:case 7718:case 7858:case 8033:case 8054:case 8085:case 8086:case 8130:case 8133:case 8266:case 8285:case 8336:case 8407:case 8408:case 8607:case 8625:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YU");break;case 5989:case 6011:case 6282:case 6768:case 7034:case 7205:case 7358:case 7528:case 7783:case 8016:case 8302:case 8378:case 8629:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YUAN");break;case 5763:case 6914:case 7348:case 7530:case 7865:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YUE");break;case 5909:case 6031:case 6581:case 6702:case 6719:case 7101:case 7225:case 7370:case 7432:case 7521:case 7657:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YUN");break;case 6257:case 6338:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZA");break;case 6544:case 7162:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZAI");break;case 7222:case 7435:case 8402:case 8456:case 8485:case 8641:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZAN");break;case 6242:case 7064:case 7416:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZANG");break;case 6380:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZAO");break;case 5638:case 8369:case 5651:case 6385:case 6493:case 6937:case 7430:case 8348:case 8423:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZE");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZEI");break;case 5858:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZEN");break;case 7153:case 7421:case 7832:case 7913:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZENG");break;case 6610:case 6274:case 6324:case 6369:case 6378:case 7736:case 8068:case 8238:case 8794:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHA");break;case 7746:case 8109:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHAI");break;case 5862:case 6288:case 7625:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHAN");break;case 5675:case 5921:case 6504:case 6554:case 6615:case 7049:case 7216:case 8315:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHANG");break;case 5815:case 7294:case 7840:case 8341:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHAO");break;case 5856:case 6301:case 7247:case 7392:case 7761:case 8049:case 8162:case 8256:case 8487:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHE");break;case 5958:case 6172:case 6805:case 7139:case 7269:case 7327:case 7384:case 7466:case 7551:case 7562:case 7685:case 7819:case 8001:case 8018:case 8380:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHEN");break;case 5826:case 6531:case 6571:case 7859:case 7903:case 8361:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHENG");break;case 5620:case 5876:case 5904:case 5990:case 6038:case 6293:case 6489:case 6669:case 6973:case 6975:case 7079:case 7246:case 7255:case 7257:case 7268:case 7382:case 7389:case 7462:case 7553:case 7589:case 7677:case 7683:case 7773:case 7984:case 8026:case 8075:case 8246:case 8474:case 8505:case 8537:case 8557:case 8560:case 8584:case 8603:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHI");break;case 5803:case 7981:case 8314:case 8417:case 8564:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHONG");break;case 6107:case 6390:case 7008:case 7091:case 7107:case 7548:case 7756:case 8406:case 8492:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHOU");break;case 5689:case 5710:case 5905:case 6049:case 6079:case 6808:case 6830:case 6883:case 7244:case 7338:case 7345:case 7636:case 7889:case 8070:case 8081:case 8335:case 8371:case 8422:case 8467:case 8578:case 8770:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHU");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUA");break;strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUAI");break;case 6389:case 6645:case 8207:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUAN");break;case 5755:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUANG");break;case 6723:case 7077:case 7136:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUI");break;case 7538:case 8124:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUN");break;case 5730:case 5834:case 6310:case 6823:case 6835:case 6910:case 7644:case 7690:case 7729:case 7977:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUO");break;case 5849:case 6549:case 7002:case 7060:case 7127:case 7287:case 7402:case 7463:case 7707:case 7786:case 7937:case 7986:case 8172:case 8342:case 8450:case 8484:case 8594:case 8604:case 8623:case 8686:case 8758:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZI");break;case 5744:case 7574:case 8453:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZONG");break;case 5833:case 5878:case 5924:case 7067:case 8677:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZOU");break;case 5762:case 6147:case 7963:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZU");break;case 6312:case 7158:case 8582:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZUAN");break;case 6209:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZUI");break;case 6304:case 7355:case 8714:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZUN");break;case 5872:case 6382:case 6460:case 6684:case 7549:case 7681:strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZUO");break;default:if (nCode >= 1601 && nCode <= 1602) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "A");break;}if (nCode >= 1603 && nCode <= 1615) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "AI");break;}if (nCode >= 1616 && nCode <= 1624) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "AN");break;}if (nCode >= 1625 && nCode <= 1627) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ANG");break;}if (nCode >= 1628 && nCode <= 1636) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "AO");break;}if (nCode >= 1637 && nCode <= 1654) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BA");break;}if (nCode >= 1655 && nCode <= 1662) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BAI");break;}if (nCode >= 1663 && nCode <= 1677) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BAN");break;}if (nCode >= 1678 && nCode <= 1689) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BANG");break;}if (nCode >= 1690 && nCode <= 1712) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BAO");break;}if (nCode >= 1713 && nCode <= 1727) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BEI");break;}if (nCode >= 1728 && nCode <= 1731) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BEN");break;}if (nCode >= 1732 && nCode <= 1737) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BENG");break;}if (nCode > 1738 && nCode <= 1761) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BI");break;}if (nCode >= 1762 && nCode <= 1773) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BIAN");break;}if (nCode >= 1774 && nCode <= 1777) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BIAO");break;}if (nCode >= 1778 && nCode <= 1781) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BIE");break;}if (nCode >= 1782 && nCode <= 1787) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BIN");break;}if (nCode >= 1788 && nCode <= 1794) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BING");break;}if (nCode >= 1801 && nCode <= 1802) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BING");break;}if (nCode >= 1803 && nCode <= 1821) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BO");break;}if (nCode >= 1822 && nCode <= 1832) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "BU");break;}if (nCode == 1833) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CA");break;}if (nCode >= 1834 && nCode <= 1844) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CAI");break;}if (nCode >= 1845 && nCode <= 1851) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CAN");break;}if (nCode >= 1852 && nCode <= 1856) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CANG");break;}if (nCode >= 1857 && nCode <= 1861) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CAO");break;}if (nCode >= 1862 && nCode <= 1866) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CE");break;}if (nCode >= 1867 && nCode <= 1868) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CENG");break;}if (nCode >= 1869 && nCode <= 1879) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHA");break;}if (nCode >= 1880 && nCode <= 1882) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHAI");break;}if (nCode >= 1883 && nCode <= 1892) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHAN");break;}if (nCode >= 1893 && nCode <= 1911) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHANG");break;}if (nCode >= 1912 && nCode <= 1920) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHAO");break;}if (nCode >= 1921 && nCode <= 1926) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHE");break;}if (nCode >= 1927 && nCode <= 1936) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHEN");break;}if (nCode >= 1937 && nCode <= 1951) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHENG");break;}if (nCode >= 1952 && nCode <= 1967) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHI");break;}if (nCode >= 1968 && nCode <= 1972) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHONG");break;}if (nCode >= 1973 && nCode <= 1984) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHOU");break;}if (nCode >= 1985 && nCode <= 2006) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHU");break;}if (nCode == 2007) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHUAI");break;}if (nCode >= 2008 && nCode <= 2014) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHUAN");break;}if (nCode >= 2015 && nCode <= 2020) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHUANG");break;}if (nCode >= 2021 && nCode <= 2025) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHUI");break;}if (nCode >= 2026 && nCode <= 2032) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHUN");break;}if (nCode >= 2033 && nCode <= 2034) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CHUO");break;}if (nCode >= 2035 && nCode <= 2046) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CI");break;}if (nCode >= 2047 && nCode <= 2052) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CONG");break;}if (nCode >= 2054 && nCode <= 2057) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CU");break;}if (nCode >= 2058 && nCode <= 2060) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CUAN");break;}if (nCode >= 2061 && nCode <= 2068) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CUI");break;}if (nCode >= 2069 && nCode <= 2071) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CUN");break;}if (nCode >= 2072 && nCode <= 2077) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "CUO");break;}if (nCode >= 2078 && nCode <= 2083) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DA");break;}if (nCode >= 2084 && nCode <= 2094) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DAI");break;}if (nCode >= 2102 && nCode <= 2116) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DAN");break;}if (nCode >= 2117 && nCode <= 2121) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DANG");break;}if (nCode >= 2122 && nCode <= 2133) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DAO");break;}if (nCode >= 2134 && nCode <= 2136) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DE");break;}if (nCode >= 2137 && nCode <= 2143) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DENG");break;}if (nCode >= 2144 && nCode <= 2162) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DI");break;}if (nCode >= 2163 && nCode <= 2178) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DIAN");break;}if (nCode >= 2179 && nCode <= 2187) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DIAO");break;}if (nCode >= 2188 && nCode <= 2194) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DIE");break;}if (nCode >= 2201 && nCode <= 2209) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DING");break;}if (nCode == 2210) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DIU");break;}if (nCode >= 2211 && nCode <= 2220) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DONG");break;}if (nCode >= 2221 && nCode <= 2227) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DOU");break;}if (nCode >= 2228 && nCode <= 2242) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DU");break;}if (nCode >= 2243 && nCode <= 2248) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DUAN");break;}if (nCode >= 2249 && nCode <= 2252) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DUI");break;}if (nCode >= 2253 && nCode <= 2261) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DUN");break;}if (nCode >= 2262 && nCode <= 2273) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "DUO");break;}if (nCode >= 2274 && nCode <= 2286) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "E");break;}if (nCode == 2287) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "EN");break;}if (nCode >= 2288 && nCode <= 2231) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ER");break;}if (nCode >= 2302 && nCode <= 2309) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FA");break;}if (nCode >= 2310 && nCode <= 2326) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FAN");break;}if (nCode >= 2327 && nCode <= 2337) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FANG");break;}if (nCode >= 2338 && nCode <= 2349) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FEI");break;}if (nCode >= 2350 && nCode <= 2364) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FEN");break;}if (nCode >= 2365 && nCode <= 2379) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FENG");break;}if (nCode == 2380) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FO");break;}if (nCode == 2381) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FOU");break;}if (nCode >= 2382 && nCode <= 2432) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "FU");break;}if (nCode >= 2435 && nCode <= 2440) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GAI");break;}if (nCode >= 2441 && nCode <= 2451) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GAN");break;}if (nCode >= 2452 && nCode <= 2460) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GANG");break;}if (nCode >= 2461 && nCode <= 2470) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GAO");break;}if (nCode >= 2471 && nCode <= 2487) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GE");break;}if (nCode == 2488) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GEI");break;}if (nCode >= 2489 && nCode <= 2490) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GEN");break;}if (nCode >= 2491 && nCode <= 2503) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GENG");break;}if (nCode >= 2504 && nCode <= 2518) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GONG");break;}if (nCode >= 2519 && nCode <= 2527) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GOU");break;}if (nCode >= 2528 && nCode <= 2545) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GU");break;}if (nCode >= 2546 && nCode <= 2551) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUA");break;}if (nCode >= 2552 && nCode <= 2554) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUAI");break;}if (nCode >= 2555 && nCode <= 2565) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUAN");break;}if (nCode >= 2566 && nCode <= 2568) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUANG");break;}if (nCode >= 2569 && nCode <= 2584) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUI");break;}if (nCode >= 2585 && nCode <= 2587) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUN");break;}if (nCode >= 2588 && nCode <= 2593) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "GUO");break;}if (nCode == 2594) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HA");break;}if (nCode >= 2601 && nCode <= 2607) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HAI");break;}if (nCode >= 2608 && nCode <= 2626) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HAN");break;}if (nCode >= 2627 && nCode <= 2629) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HANG");break;}if (nCode >= 2630 && nCode <= 2638) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HAO");break;}if (nCode >= 2639 && nCode <= 2656) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HE");break;}if (nCode >= 2657 && nCode <= 2658) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HEI");break;}if (nCode >= 2659 && nCode <= 2662) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HEN");break;}if (nCode >= 2663 && nCode <= 2667) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HENG");break;}if (nCode >= 2668 && nCode <= 2676) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HONG");break;}if (nCode >= 2677 && nCode <= 2683) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HOU");break;}if (nCode >= 2684 && nCode <= 2707) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HU");break;}if (nCode >= 2708 && nCode <= 2716) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUA");break;}if (nCode >= 2717 && nCode <= 2721) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUAI");break;}if (nCode >= 2722 && nCode <= 2735) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUAN");break;}if (nCode >= 2736 && nCode <= 2749) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUANG");break;}if (nCode >= 2750 && nCode <= 2770) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUI");break;}if (nCode >= 2771 && nCode <= 2776) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUN");break;}if (nCode >= 2777 && nCode <= 2786) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "HUO");break;}if (nCode >= 2787 && nCode <= 2845) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JI");break;}if (nCode >= 2846 && nCode <= 2862) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIA");break;}if (nCode >= 2863 && nCode <= 2908) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIAN");break;}if (nCode >= 2909 && nCode <= 2921) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIANG");break;}if (nCode >= 2922 && nCode <= 2949) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIAO");break;}if (nCode >= 2950 && nCode <= 2976) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIE");break;}if (nCode >= 2977 && nCode <= 3002) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIN");break;}if (nCode >= 3003 && nCode <= 3027) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JING");break;}if (nCode >= 3028 && nCode <= 3029) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIONG");break;}if (nCode >= 3030 && nCode <= 3046) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JIU");break;}if (nCode >= 3047 && nCode <= 3071) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JU");break;}if (nCode >= 3072 && nCode <= 3078) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JUAN");break;}if (nCode >= 3079 && nCode <= 3088) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JUE");break;}if (nCode >= 3089 && nCode <= 3105) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "JUN");break;}if (nCode >= 3106 && nCode <= 3109) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KA");break;}if (nCode >= 3110 && nCode <= 3114) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KAI");break;}if (nCode >= 3115 && nCode <= 3120) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KAN");break;}if (nCode >= 3121 && nCode <= 3127) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KANG");break;}if (nCode >= 3128 && nCode <= 3131) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KAO");break;}if (nCode >= 3132 && nCode <= 3146) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KE");break;}if (nCode >= 3147 && nCode <= 3150) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KEN");break;}if (nCode >= 3151 && nCode <= 3152) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KENG");break;}if (nCode >= 3153 && nCode <= 3156) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KONG");break;}if (nCode >= 3157 && nCode <= 3160) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KOU");break;}if (nCode >= 3161 && nCode <= 3167) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KU");break;}if (nCode >= 3168 && nCode <= 3172) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KUA");break;}if (nCode >= 3173 && nCode <= 3176) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KUAI");break;}if (nCode >= 3177 && nCode <= 3178) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KUAN");break;}if (nCode >= 3179 && nCode <= 3186) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KUANG");break;}if (nCode >= 3187 && nCode <= 3203) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KUI");break;}if (nCode >= 3204 && nCode <= 3207) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KUN");break;}if (nCode >= 3208 && nCode <= 3211) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "KUO");break;}if (nCode >= 3212 && nCode <= 3218) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LA");break;}if (nCode >= 3219 && nCode <= 3221) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LAI");break;}if (nCode >= 3222 && nCode <= 3236) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LAN");break;}if (nCode >= 3237 && nCode <= 3243) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LANG");break;}if (nCode >= 3244 && nCode <= 3252) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LAO");break;}if (nCode >= 3253 && nCode <= 3254) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LE");break;}if (nCode >= 3255 && nCode <= 3265) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LEI");break;}if (nCode >= 3266 && nCode <= 3268) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LENG");break;}if (nCode >= 3269 && nCode <= 3308) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LI");break;}if (nCode == 3309) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LIA");break;}if (nCode >= 3310 && nCode <= 3323) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LIAN");break;}if (nCode >= 3324 && nCode <= 3334) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LIANG");break;}if (nCode >= 3335 && nCode <= 3347) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LIAO");break;}if (nCode >= 3348 && nCode <= 3352) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LIE");break;}if (nCode >= 3353 && nCode <= 3363) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LIN");break;}if (nCode >= 3364 && nCode <= 3378) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LING");break;}if (nCode >= 3379 && nCode <= 3389) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LIU");break;}if (nCode >= 3390 && nCode <= 3404) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LONG");break;}if (nCode >= 3405 && nCode <= 3410) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LOU");break;}if (nCode >= 3411 && nCode <= 3444) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LU");break;}if (nCode >= 3445 && nCode <= 3450) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LUAN");break;}if (nCode >= 3451 && nCode <= 3452) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LUE");break;}if (nCode >= 3453 && nCode <= 3459) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LUN");break;}if (nCode >= 3460 && nCode <= 3471) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "LUO");break;}if (nCode >= 3472 && nCode <= 3480) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MA");break;}if (nCode >= 3481 && nCode <= 3486) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MAI");break;}if (nCode >= 3487 && nCode <= 3501) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MAN");break;}if (nCode >= 3502 && nCode <= 3507) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MANG");break;}if (nCode >= 3508 && nCode <= 3519) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MAO");break;}if (nCode == 3520) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ME");break;}if (nCode >= 3521 && nCode <= 3536) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MEI");break;}if (nCode >= 3537 && nCode <= 3539) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MEN");break;}if (nCode >= 3540 && nCode <= 3547) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MENG");break;}if (nCode >= 3548 && nCode <= 3561) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MI");}if (nCode >= 3562 && nCode <= 3570) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MIAN");break;}if (nCode >= 3571 && nCode <= 3578) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MIAO");break;}if (nCode >= 3579 && nCode <= 3580) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MIE");break;}if (nCode >= 3581 && nCode <= 3586) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MIN");break;}if (nCode >= 3587 && nCode <= 3592) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MING");break;}if (nCode == 3593) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MIU");break;}if (nCode >= 3594 && nCode <= 3616) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MO");break;}if (nCode >= 3617 && nCode <= 3619) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MOU");break;}if (nCode >= 3620 && nCode <= 3634) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "MU");break;}if (nCode >= 3635 && nCode <= 3641) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NA");break;}if (nCode >= 3642 && nCode <= 3646) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NAI");break;}if (nCode >= 3647 && nCode <= 3649) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NAN");break;}if (nCode == 3650) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NANG");break;}if (nCode >= 3651 && nCode <= 3655) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NAO");break;}if (nCode == 3656) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NE");break;}if (nCode >= 3657 && nCode <= 3658) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NEI");break;}if (nCode == 3659) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NEN");break;}if (nCode == 3660) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NENG");break;}if (nCode >= 3661 && nCode <= 3671) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NI");break;}if (nCode >= 3672 && nCode <= 3678) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NIAN");break;}if (nCode >= 3679 && nCode <= 3680) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NIANG");break;}if (nCode >= 3681 && nCode <= 3682) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NIAO");break;}if (nCode >= 3683 && nCode <= 3689) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NIE");break;}if (nCode == 3690) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NIN");break;}if (nCode >= 3691 && nCode <= 3702) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NING");break;}if (nCode >= 3703 && nCode <= 3706) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NIU");break;}if (nCode >= 3707 && nCode <= 3710) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NONG");break;}if (nCode >= 3711 && nCode <= 3714) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NU");break;}if (nCode == 3715) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NUAN");break;}if (nCode >= 3716 && nCode <= 3717) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NUE");break;}if (nCode >= 3718 && nCode <= 3721) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "NUO");break;}if (nCode == 3722) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "O");break;}if (nCode >= 3723 && nCode <= 3729) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "OU");break;}if (nCode >= 3730 && nCode <= 3735) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PA");break;}if (nCode >= 3736 && nCode <= 3741) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PAI");break;}if (nCode >= 3742 && nCode <= 3749) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PAN");break;}if (nCode >= 3750 && nCode <= 3754) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PANG");break;}if (nCode >= 3755 && nCode <= 3761) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PAO");break;}if (nCode >= 3762 && nCode <= 3770) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PEI");break;}if (nCode >= 3771 && nCode <= 3772) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PEN");break;}if (nCode >= 3773 && nCode <= 3786) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PENG");break;}if (nCode >= 3787 && nCode <= 3809) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PI");break;}if (nCode >= 3810 && nCode <= 3813) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PIAN");break;}if (nCode >= 3814 && nCode <= 3817) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PIAO");break;}if (nCode >= 3818 && nCode <= 3819) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PIE");break;}if (nCode >= 3820 && nCode <= 3824) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PIN");break;}if (nCode >= 3825 && nCode <= 3833) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PING");break;}if (nCode >= 3834 && nCode <= 3841) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PO");break;}if (nCode == 3842) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "POU");break;}if (nCode >= 3843 && nCode <= 3857) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "PU");break;}if (nCode >= 3858 && nCode <= 3893) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QI");break;}if (nCode == 3894 || nCode >= 3901 && nCode <= 3902) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIA");break;}if (nCode >= 3903 && nCode <= 3924) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIAN");break;}if (nCode >= 3925 && nCode <= 3932) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIANG");break;}if (nCode >= 3933 && nCode <= 3947) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIAO");break;}if (nCode >= 3948 && nCode <= 3952) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIE");break;}if (nCode >= 3953 && nCode <= 3963) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIN");break;}if (nCode >= 3964 && nCode <= 3976) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QING");break;}if (nCode >= 3977 && nCode <= 3978) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIONG");break;}if (nCode >= 3979 && nCode <= 3986) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QIU");break;}if (nCode >= 3987 && nCode <= 4005) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QU");break;}if (nCode >= 4006 && nCode <= 4016) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QUAN");break;}if (nCode >= 4017 && nCode <= 4024) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QUE");break;}if (nCode >= 4025 && nCode <= 4026) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "QUN");break;}if (nCode >= 4027 && nCode <= 4030) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RAN");break;}if (nCode >= 4031 && nCode <= 4035) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RANG");}if (nCode >= 4036 && nCode <= 4038) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RAO");break;}if (nCode >= 4039 && nCode <= 4040) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RE");break;}if (nCode >= 4041 && nCode <= 4050) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "REN");break;}if (nCode >= 4051 && nCode <= 4052) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RENG");break;}if (nCode == 4053) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RI");break;}if (nCode >= 4054 && nCode <= 4063) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RONG");break;}if (nCode >= 4064 && nCode <= 4066) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ROU");break;}if (nCode >= 4067 && nCode <= 4076) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RU");break;}if (nCode >= 4077 && nCode <= 4078) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RUAN");break;}if (nCode >= 4079 && nCode <= 4081) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RUI");break;}if (nCode >= 4082 && nCode <= 4083) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RUN");break;}if (nCode >= 4084 && nCode <= 4085) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "RUO");break;}if (nCode >= 4086 && nCode <= 4088) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SA");break;}if (nCode >= 4089 && nCode <= 4092) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SAI");break;}if (nCode >= 4093 && nCode <= 4094) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SAN");break;}if (nCode >= 4101 && nCode <= 4102) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SAN");break;}if (nCode >= 4103 && nCode <= 4105) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SANG");break;}if (nCode >= 4106 && nCode <= 4109) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SAO");break;}if (nCode >= 4110 && nCode <= 4112) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SE");break;}if (nCode == 4113) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SEN");}if (nCode == 4114) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SENG");break;}if (nCode >= 4115 && nCode <= 4123) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHA");break;}if (nCode >= 4124 && nCode <= 4125) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHAI");break;}if (nCode >= 4126 && nCode <= 4141) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHAN");break;}if (nCode >= 4142 && nCode <= 4149) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHANG");break;}if (nCode >= 4150 && nCode <= 4160) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHAO");break;}if (nCode >= 4161 && nCode <= 4172) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHE");break;}if (nCode >= 4173 && nCode <= 4188) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHEN");break;}if (nCode >= 4189 && nCode <= 4205) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHENG");break;}if (nCode >= 4206 && nCode <= 4252) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHI");break;}if (nCode >= 4253 && nCode <= 4262) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHOU");break;}if (nCode >= 4263 && nCode <= 4301) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHU");break;}if (nCode >= 4302 && nCode <= 4303) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUA");break;}if (nCode >= 4304 && nCode <= 4307) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUAI");break;}if (nCode >= 4308 && nCode <= 4309) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUAN");break;}if (nCode >= 4310 && nCode <= 4312) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUANG");break;}if (nCode >= 4313 && nCode <= 4316) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUI");break;}if (nCode >= 4317 && nCode <= 4320) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUN");break;}if (nCode >= 4321 && nCode <= 4324) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SHUO");break;}if (nCode >= 4325 && nCode <= 4340) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SI");break;}if (nCode >= 4341 && nCode <= 4348) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SONG");break;}if (nCode >= 4349 && nCode <= 4352) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SOU");break;}if (nCode >= 4353 && nCode <= 4364) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SU");break;}if (nCode >= 4365 && nCode <= 4367) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SUAN");break;}if (nCode >= 4368 && nCode <= 4378) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SUI");break;}if (nCode >= 4379 && nCode <= 4381) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SUN");break;}if (nCode >= 4382 && nCode <= 4389) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "SUO");break;}if (nCode >= 4390 && nCode <= 4404) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TA");break;}if (nCode >= 4405 && nCode <= 4413) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TAI");break;}if (nCode >= 4414 && nCode <= 4431) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TAN");break;}if (nCode >= 4432 && nCode <= 4444) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TANG");break;}if (nCode >= 4445 && nCode <= 4455) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TAO");break;}if (nCode == 4456) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TE");break;}if (nCode >= 4457 && nCode <= 4460) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TENG");break;}if (nCode >= 4461 && nCode <= 4475) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TI");break;}if (nCode >= 4476 && nCode <= 4483) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TIAN");break;}if (nCode >= 4484 && nCode <= 4488) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TIAO");break;}if (nCode >= 4489 && nCode <= 4491) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TIE");break;}if (nCode >= 4492 && nCode <= 4507) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TING");break;}if (nCode >= 4508 && nCode <= 4520) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TONG");break;}if (nCode >= 4521 && nCode <= 4524) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TOU");break;}if (nCode >= 4525 && nCode <= 4535) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TU");break;}if (nCode >= 4536 && nCode <= 4537) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TUAN");break;}if (nCode >= 4538 && nCode <= 4543) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TUI");break;}if (nCode >= 4544 && nCode <= 4546) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TUN");break;}if (nCode >= 4547 && nCode <= 4557) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "TUO");break;}if (nCode >= 4558 && nCode <= 4564) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WA");break;}if (nCode >= 4565 && nCode <= 4566) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WAI");break;}if (nCode >= 4567 && nCode <= 4583) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WAN");break;}if (nCode >= 4584 && nCode <= 4593) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WANG");break;}if (nCode >= 4594 && nCode <= 4632) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WEI");break;}if (nCode >= 4633 && nCode <= 4642) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WEN");break;}if (nCode >= 4643 && nCode <= 4645) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WENG");break;}if (nCode >= 4646 && nCode <= 4654) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WO");break;}if (nCode >= 4655 && nCode <= 4683) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "WU");break;}if (nCode >= 4684 && nCode <= 4724) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XI");break;}if (nCode >= 4725 && nCode <= 4737) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIA");break;}if (nCode >= 4738 && nCode <= 4763) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIAN");break;}if (nCode >= 4764 && nCode <= 4783) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIANG");break;}if (nCode >= 4784 && nCode <= 4807) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIAO");break;}if (nCode >= 4809 && nCode <= 4828) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIE");break;}if (nCode >= 4829 && nCode <= 4838) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIN");break;}if (nCode >= 4839 && nCode <= 4853) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XING");break;}if (nCode >= 4854 && nCode <= 4860) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIONG");break;}if (nCode >= 4861 && nCode <= 4869) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XIU");break;}if (nCode >= 4870 && nCode <= 4888) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XU");break;}if (nCode >= 4889 && nCode <= 4904) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XUAN");break;}if (nCode >= 4905 && nCode <= 4910) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XUE");break;}if (nCode >= 4911 && nCode <= 4924) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "XUN");break;}if (nCode >= 4925 && nCode <= 4940) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YA");break;}if (nCode >= 4941 && nCode <= 4973) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YAN");break;}if (nCode >= 4974 && nCode <= 4990) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YANG");break;}if (nCode >= 4991 && nCode <= 5011) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YAO");break;}if (nCode >= 5012 && nCode <= 5026) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YE");break;}if (nCode >= 5027 && nCode <= 5079) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YI");break;}if (nCode >= 5080 && nCode <= 5101) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YIN");break;}if (nCode >= 5102 && nCode <= 5119) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YING");break;}if (nCode == 5120) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YO");break;}if (nCode >= 5121 && nCode <= 5135) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YONG");break;}if (nCode >= 5136 && nCode <= 5155) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YOU");break;}if (nCode >= 5156 && nCode <= 5206) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YU");break;}if (nCode >= 5207 && nCode <= 5226) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YUAN");break;}if (nCode >= 5227 && nCode <= 5236) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YUE");break;}if (nCode >= 5237 && nCode <= 5248) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "YUN");break;}if (nCode >= 5249 && nCode <= 5251) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZA");break;}if (nCode >= 5252 && nCode <= 5258) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZAI");break;}if (nCode >= 5259 && nCode <= 5262) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZAN");break;}if (nCode >= 5263 && nCode <= 5265) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZANG");break;}if (nCode >= 5266 && nCode <= 5279) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZAO");break;}if (nCode >= 5280 && nCode <= 5283) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZE");break;}if (nCode == 5284) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZEI");break;}if (nCode == 5285) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZEN");break;}if (nCode >= 5286 && nCode <= 5289) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZENG");break;}if (nCode >= 5290 && nCode <= 5309) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHA");break;}if (nCode >= 5310 && nCode <= 5315) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHAI");break;}if (nCode >= 5316 && nCode <= 5332) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHAN");break;}if (nCode >= 5333 && nCode <= 5347) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHANG");break;}if (nCode >= 5348 && nCode <= 5357) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHAO");break;}if (nCode >= 5358 && nCode <= 5367) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHE");break;}if (nCode >= 5368 && nCode <= 5383) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHEN");break;}if (nCode >= 5384 && nCode <= 5404) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHENG");break;}if (nCode >= 5405 && nCode <= 5447) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHI");break;}if (nCode >= 5448 && nCode <= 5458) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHONG");break;}if (nCode >= 5459 && nCode <= 5472) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHOU");break;}if (nCode >= 5473 && nCode <= 5504) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHU");break;}if (nCode >= 5505 && nCode <= 5506) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUA");break;}if (nCode == 5507) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUAI");break;}if (nCode >= 5508 && nCode <= 5513) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUAN");break;}if (nCode >= 5514 && nCode <= 5520) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUANG");break;}if (nCode >= 5521 && nCode <= 5526) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUI");break;}if (nCode >= 5527 && nCode <= 5528) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUN");break;}if (nCode >= 5529 && nCode <= 5539) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZHUO");break;}if (nCode >= 5540 && nCode <= 5554) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZI");break;}if (nCode >= 5555 && nCode <= 5561) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZONG");break;}if (nCode >= 5562 && nCode <= 5565) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZOU");break;}if (nCode >= 5566 && nCode <= 5573) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZU");break;}if (nCode >= 5574 && nCode <= 5575) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZUAN");break;}if (nCode >= 5576 && nCode <= 5579) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZUI");break;}if (nCode >= 5580 && nCode <= 5581) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZUN");break;}if (nCode >= 5582 && nCode <= 5589) {strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "ZUO");break;}strcpy_s(strValue, HZ2PY_MAX_PINYIN_SIZE, "?");return 0;}return 1;
}int CCendPinyinDataSearch::is_utf8_string(char *utf)
{int length = strlen(utf);int check_sub = 0;int i = 0;if ( length > HZ2PY_UTF8_CHECK_LENGTH ) //只取前面特定长度的字符来验证即可{length = HZ2PY_UTF8_CHECK_LENGTH;}for ( ; i < length; i ++ ){if ( check_sub == 0 ){if ( (utf[i] >> 7) == 0 ) //0xxx xxxx{continue;}else if ( (utf[i] & 0xE0) == 0xC0 ) //110x xxxx{check_sub = 1;}else if ( (utf[i] & 0xF0) == 0xE0 ) //1110 xxxx{check_sub = 2;}else if ( (utf[i] & 0xF8) == 0xF0 ) //1111 0xxx{check_sub = 3;}else if ( (utf[i] & 0xFC) == 0xF8 ) //1111 10xx{check_sub = 4;}else if ( (utf[i] & 0xFE) == 0xFC ) //1111 110x{check_sub = 5;}else{return 0;}}else{if ( (utf[i] & 0xC0) != 0x80 ){return 0;}check_sub --;}}return 1;
}void CCendPinyinDataSearch::testData()
{char inbuf[1000] = "平阳路龙城大街龙瑞苑小区刘峰峰收";char * outbuf = new char[HZ2PY_OUTPUT_BUF_ARRAY_SIZE];memset(outbuf, '\0', sizeof(char) * HZ2PY_OUTPUT_BUF_ARRAY_SIZE);if (is_utf8_string(inbuf)) {printf("utf8:");pinyin_utf8(inbuf, outbuf);} else {printf("gb2312:");pinyin_gb2312(inbuf, outbuf, false, false, true, true, true);}printf("%s\n", outbuf);qDebug() << "123123 pinyin" << outbuf;}
头文件
#ifndef C_CEND_PINYIN_DATA_SEARCH_H
#define C_CEND_PINYIN_DATA_SEARCH_H#include <QWidget>
#include <QMap>
#include <QGuiApplication>
#include <string>
#include <Qdebug>
#include <QTextCodec>
using std::string;//gbk转unicode//QTextCodec* gbk = QTextCodec::codecForName("gbk");//StrData = gbk->toUnicode(StrData.toStdString().data());//unicode转uft-8
//QTextCodec* utf8 = QTextCodec::codecForName("UTF-8");//StrData = utf8->fromUnicode(strData, tostdstring().data());class CCendPinyinDataSearch : public QWidget
{Q_OBJECTpublic:/*** @breif : 构造* @author : Liufengfeng* @email : 407621563@qq.com* @param : QObject * parent* @return :* @date : 2023/11/07 11:29*/CCendPinyinDataSearch(QWidget* parent = nullptr);/*** @breif : 析构* @author : Liufengfeng* @email : 407621563@qq.com* @return :* @date : 2023/11/07 11:29*/~CCendPinyinDataSearch();/*** @breif : 塞入索引数据* @author : Liufengfeng* @email : 407621563@qq.com* @return :* @date : 2023/11/07 11:29*/void insertSearchIndex(int,QString);/*** @breif : 获取索引数据* @author : Liufengfeng* @email : 407621563@qq.com* @return :* @date : 2023/11/07 11:29*/void getSeachIndexList(QString);/*** @breif : 获取搜索 索引结果集* @author : Liufengfeng* @email : 407621563@qq.com* @return :* @date : 2023/11/07 11:29*/QStringList getSeachListData();/*** @breif : 包含当前拼音中函数* @author : Liufengfeng* @email : 407621563@qq.com* @return :* @date : 2023/11/07 11:29*/bool isContainsAllCharacters(const std::string& mainString, const std::string& subString);/*** @breif : 获取中文转拼音* @author : Liufengfeng* @email : 407621563@qq.com* @return :* @date : 2023/11/07 11:29*/QString chineseConvertPinYinAllSpell(QString dest_chinese,bool isUtf8);private:/*** @breif : 数据转换* @author : Liufengfeng* @email : 407621563@qq.com* @return :* @date : 2023/11/07 11:29*/bool safeAddToOutbuf(char* outbuf,int &iOutbuf,char* pinyinValue,int iPinyinValue);/*** @breif : 拼音转utf8* @author : Liufengfeng* @email : 407621563@qq.com* @return :* @date : 2023/11/07 11:29*/void pinyin_utf8(char* inbuf,char* outbuf, bool m_blnSimaple=false,bool polyphone_support=false,bool m_blnFirstBig=false,bool m_blnAllBiG=false,bool m_LetterEnd=false, bool m_unknowSkip=true,bool m_filterPunc=true);/*** @breif : 拼音转gb2312* @author : Liufengfeng* @email : 407621563@qq.com* @return :* @date : 2023/11/07 11:29*/void pinyin_gb2312(char * inbuf, char * outbuf, bool m_blnSimaple = false, bool polyphone_support = false, bool m_blnFirstBig = false, bool m_blnAllBiG = false, bool m_LetterEnd = false, bool m_unknowSkip = true, bool m_filterPunc = true);/*** @breif : 查找对应的值* @author : Liufengfeng* @email : 407621563@qq.com* @return :* @date : 2023/11/07 11:29*/int findLetter(int nCode, char* strValue); /*** @breif : 判断是否 utf8* @author : Liufengfeng* @email : 407621563@qq.com* @return :* @date : 2023/11/07 11:29*/int is_utf8_string(char *utf);/*** @breif : 测试数据* @author : Liufengfeng* @email : 407621563@qq.com* @return :* @date : 2023/11/07 11:29*/void testData();private:// 检索索引QMap<int,QString> m_pSearchIndex;QStringList m_pSearchIndexList;
};#endif //C_CEND_PINYIN_DATA_SEARCH_H
参考代码
C++ 解决string转为char*中文乱码问题_char* 中文乱码-CSDN博客
突破编程_C++_字符串算法(判断字符串是否包含)_c++判断字符串是否含有某字符串-CSDN博客
汉字转拼音c/c++源码,支持gb2312和utf8_汉字转拼音 c++-CSDN博客