在日常业务中,需要进行中文转拼音的检索。已便实现对应的 模糊搜索。
使用方法
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 end
return 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_OBJECT
public:
/**
* @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博客