将汉字转化为它对应的拼音

好久没有来更新博客了,今天论坛上看到将汉字转化为其相对应的拼音的题目,随写了下面的程序:(c++ vc6.0)

 

 

#include < string >
using   namespace  std;
#define   PY_SIZE   398 


 
const     char *    __pinyin[]    =    
{
    
" 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 "
};




const     int    __china_code[]    =  
{
    
- 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
};




class    CPy_china   
{
private :   
    
int    china_code_value( const   string & );   
    
string   code_to_py( int  code); 
    
public :
    
string  china_to_py( const   string &  str);
};   




inline  
int  CPy_china::china_code_value( const   string &  word)   
{   
    
char    code[ 11 ];   
    memset(code, 
0 sizeof (code));   
    
    code[
0 ]    =    word[ 1 ];   
    code[
1 ]    =    word[ 0 ];   
    
return  ( * ( long * )code)  -   65536 ;   
}   



inline 
string  CPy_china::code_to_py( int  china_code)   
{   
    
string  py_mode;
    
    
if (china_code  <   - 20319   ||  china_code  >   - 10247 )
    {
        py_mode 
+=   "   " ;
    } 
    
else    
    {  
        
int    pos;   
        
for (pos  =  PY_SIZE  -   1 ; pos  >=   0 -- pos)   
            
if    (__china_code[pos]  <=  china_code)    break ;   
        py_mode 
+=  __pinyin[pos];   
        py_mode 
+=   "   " ;   
    }   

    
return  py_mode;
}   



string  CPy_china::china_to_py( const   string &  str)
{
    
int  code  =  china_code_value(str);
    
return  code_to_py(code);
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值