免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3743 | 回复: 9
打印 上一主题 下一主题

[SCO UNIX] 输入一个汉字转为该汉字拼音的源程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-21 09:24 |只看该作者 |倒序浏览
本人最近写了一个小程序,输入一个汉字,显示该汉字的拼音,现将程序共享给大家。


/*
*  Source :      hz.c
*  Version:      1.0
*  Description:  将汉字转为拼音
*  Interface  :
*
*
*  History:
*  Date          Postion             Author           Description
* ------------------------------------------------------------------
*  2004.05.20    NanJing             吴宇明           Create
*/

#include    <stdio.h>;
#define     ROW_CNT 396
long wu_get_asc(char *str)
{
    long    l;
    char    str_tmp[11];

    memset(str_tmp,0,sizeof(str_tmp));
    str_tmp[0]=str[1];
    str_tmp[1]=str[0];
    l=*(long*)str_tmp;
    l=l-65536;

    /*
    printf("%ld\n",l);
    printf("%d\n",str_tmp[0]);
    printf("%d\n",str_tmp[1]);
    */
    return l;
}

void main(int argc,char *argv[])
{
    //共396行
    char *py[]=
    {
        "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"
    };
    long    py_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
    };

    int     i;
    long    ret_code;
    char    ret_py[1000];
    char    hz[100];
/*
    for (i=0;i<ROW_CNT;i++)
    {
        //printf("%4d %6d\n",i,py_code);
        printf("%4d %6d %s\n",i,py_code,py);
    }
*/
    strcpy(hz,argv[1]);
    ret_code=wu_get_asc(hz);
    if (ret_code>;0 && ret_code<160)
        strcpy(ret_py,hz);
    else
    {
        if (ret_code<-20319 || ret_code>;-10247)
            strcpy(ret_py,"";
        else
        {
            for (i=ROW_CNT-1;i>;=0;i--)
                if (py_code<=ret_code) break;
            strcpy(ret_py,py);
            //printf("i:%3d\n",i);
        }
    }
    //printf("%d\n",ret_code);
    printf("%s\n",ret_py);
}


编译方法
wuym:/home/kahala/src>;cc -o hz hz.c
wuym:/home/kahala/src>;hz 我
wo

论坛徽章:
1
15-16赛季CBA联赛之北控
日期:2022-03-04 22:35:50
2 [报告]
发表于 2004-05-21 10:52 |只看该作者

输入一个汉字转为该汉字拼音的源程序

好啊,鼓励原创!

论坛徽章:
0
3 [报告]
发表于 2004-05-21 17:11 |只看该作者

输入一个汉字转为该汉字拼音的源程序

汉字拼音音调呢?多音问题?

论坛徽章:
0
4 [报告]
发表于 2004-05-21 21:51 |只看该作者

输入一个汉字转为该汉字拼音的源程序

很好!鼓励

论坛徽章:
0
5 [报告]
发表于 2004-05-22 16:39 |只看该作者

输入一个汉字转为该汉字拼音的源程序

谈以下思路把。怎么把一个字如“你”映射到它的拼音的

论坛徽章:
0
6 [报告]
发表于 2004-05-22 23:33 |只看该作者

输入一个汉字转为该汉字拼音的源程序

原理是什么啊?
告知一下吧,呵呵

论坛徽章:
0
7 [报告]
发表于 2004-05-24 11:29 |只看该作者

输入一个汉字转为该汉字拼音的源程序

原帖由 "wuym1972" 发表:
          //printf("i:%3d\n",i);
        }
    }
    //printf("%d\n",ret_code);
    printf("%s\n",ret_py);
}


编译方法
wuym:/home/kahala/src>;cc -o hz hz.c
wuym:/home/kahala/src>;hz 我..........


找不到二级字库的拼音?我做的一个语音自助就是需要所有汉字的拼音,如果有支持二级字库的就好了。
nantianwupeng 该用户已被删除
8 [报告]
发表于 2004-05-24 22:34 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
9 [报告]
发表于 2004-05-26 11:02 |只看该作者

输入一个汉字转为该汉字拼音的源程序

大哥你也是邮政的吧,我一看卡哈拉就知道了。

论坛徽章:
0
10 [报告]
发表于 2004-05-27 18:52 |只看该作者

输入一个汉字转为该汉字拼音的源程序

哥们也试一试
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP