首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • VC6.0如何获得unicode汉字的拼音声母(急!) [已结贴,结贴人:sky04]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sky04
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-21 16:27:18 楼主
    用VC6.0,用UNICODE,做一个类似于手机联系人里面的功能,比如我输入字母C,就定位到第一个以C声母开始的人名上。
    现在最主要不知道如何得到一个汉字的声母。
    那位牛人给些指点,如能得到一窜汉字的首声母更好。
    如:对于“汉字” 得到“HZ”就OK了。
    先谢后送分!
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cnzdgs
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 5

      2

      13

    发表于:2008-08-21 16:51:231楼 得分:15
    好象没有直接的办法,需要有一个“字典”,可以在网上搜索看能否找到别人做好的。
    另外,据说GB2312的一级汉字是按拼音排列的,可以把UNICODE转成GB2312再与各个声母开始的第1个字比较来确定声母。
    如果想自己做“字典”,可以从金山词霸的拼音检字表中复制汉字出来,然后再编辑。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jennyvenus
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

      5

      5

    发表于:2008-08-21 17:14:002楼 得分:4
    我做过,那无非是查表罢了。

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jennyvenus
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

      5

      5

    发表于:2008-08-21 17:22:573楼 得分:15
    我以前做过sim卡上的超级号薄的项目的一部分。那个项目的特点就是在手机上按着字母就出现对应的人名,我们首先按规定做了一个“百家姓”表。

    最初部分姓氏如下,没有最新的

    char bj[] = "艾爱安敖巴八爸白百班暴包鲍贝毕碧卞伯薄博步卜蔡苍曹操岑柴单畅常晁巢车谌陈成程承池楚储褚初淳从崔大戴党刀道邓狄第弟刁丁东窦都杜堵独段端多董鄂额二"
        "法范藩樊方房费凤逢冯丰封傅付扶伏富浮符盖甘干刚高哥戈葛耿巩公龚弓宫贡苟姑古顾谷官冠关管光归桂国郭过海韩郝何贺赫衡弘洪侯后胡户呼花华滑桓宦黄皇惠霍"
        "冀姬季汲计吉纪籍基家贾夹简剪蒋姜江焦矫姐晋靳金荆经景九舅居鞠觉阚康柯孔空寇库匡邝旷况赖来蓝郎劳老姥乐雷冷利李黎厉励廉连梁廖林凌令刘柳留六龙隆娄楼路鹿禄卢陆鲁栾罗骆吕闾"
        "妈马麻麦满茅毛冒梅妹门蒙孟米缪苗闵明谬莫穆牧睦慕那纳奶南讷能倪聂宁钮牛农欧区潘庞裴蓬彭朋皮朴平蒲浦濮七戚祁漆齐钱强乔秦覃钦庆卿清青求丘邱秋仇裘屈瞿曲全权阙"
        "冉让饶任容融戎荣茹阮芮萨撒赛三桑沙山单尚商上韶邵佘沈申慎莘申生盛十时释是施师石史寿首叔舒疏帅双水斯司四宋苏宿粟隋孙索树"
        "他泰邰太谭谈澹汤唐陶腾田童通佟同屠涂图拓万王汪韦魏危蔚卫尉微问温闻文翁沃五伍乌武巫邬吾吴奚习席西喜夏冼鲜咸鲜相项向小萧解谢辛忻邢熊须徐许胥宣轩薛寻刑肖"
        "言严阎闫晏燕颜羊仰养杨姚爷叶业义一衣易伊益依伊姨殷银尹印应英雍游有酉愈俞羽喻庾虞于余於鱼禹郁尉宇元袁越岳乐宰藏曾查翟湛占詹展章张长赵招真甄郑"
        "植仲终钟周竺诸朱竹祝爪庄卓子宗邹祖左邹祖左邹祖左";
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jennyvenus
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

      5

      5

    发表于:2008-08-21 17:27:144楼 得分:10
    然后按首字母a,b,c,d......分组,这里面有多音字,或者你也可以找一个现成的输入法,将其字库提取出来

    其本质也是一样的,都是查表

    我做过一个查五笔编码的小程序,就是提取网上的一个反查编码的程序的库。拼音也可以这样。

    啊kbsk
    阿bskg
    埃fctd
    挨rctd
    哎kaqy
    唉kctd
    哀yeu
    皑rmnn
    癌ukkm
    蔼ayjn
    矮tdtv
    艾aqu
    碍djgf
    爱epdc
    隘buwl
    鞍afpv
    氨rnpv
    安pvf
    俺wdjn
    按rpvg
    暗jujg
    岸mdfj
    胺epvg
    案pvsu
    肮eymn
    昂jqbj
    盎mdlf
    凹mmgd
    敖gqty
    熬gqto
    翱rdfn
    袄putd
    傲wgqt
    奥tmod
    懊ntmd
    澳itmd
    芭acb
    捌rklj
    扒rwy
    叭kwy
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • qqwx_1986
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:30:285楼 得分:2
    好强
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shanying_0
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 18:08:536楼 得分:2
    up。貌似很麻烦。其实很容易的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sky04
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 18:15:587楼 得分:0
    引用 6 楼 shanying_0 的回复:
    up。貌似很麻烦。其实很容易的

    这个怎么说?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tunnel115
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 08:38:278楼 得分:3
    学习一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jdifjoifj
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 08:41:379楼 得分:0
    该回复于2008-08-22 15:10:02被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sky04
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 08:55:2610楼 得分:0
    引用 9 楼 jdifjoifj 的回复:
    这个问题我以前也接触过,开始的时候我也找不到问题的原因,后来我进了一个技术交

    流群,这个群里的人挺多的,在里面可以沟通技术,你可以进去看一下.群号是:四+三+

    四+八+零+零+七+一。另外,这个群里可以接项目。

    别在这做广告!
    另外,上不了QQ,只能上CSDN和百度
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jennyvenus
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

      5

      5

    发表于:2008-08-22 09:10:2311楼 得分:10
    将转换表提取出来,然后根据需要按你的方法先进行预处理,我做反查五笔编码的时候,进行了排序和对齐操作,一个汉字,4个编码,两个回车,相当于每个字占用8个字节,装入内存中进行二分法查找。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ww2734
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 09:16:1712楼 得分:2
    引用 9 楼 jdifjoifj 的回复:
    这个问题我以前也接触过,开始的时候我也找不到问题的原因,后来我进了一个技术交

    流群,这个群里的人挺多的,在里面可以沟通技术,你可以进去看一下.群号是:四+三+

    四+八+零+零+七+一。另外,这个群里可以接项目。

    明显是广告
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ringphone
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 10:06:1213楼 得分:15
    char getpy(TCHAR t)
    {
    TCHAR stridx[] = "驁簿錯鵽樲鰒腂夻无攈穒鱳旀桛漚曝囕鶸蜶籜无无鶩鑂韻咗";

    for(int i=0;i <26;i++)
    {
      if(t >= stridx[i] && stridx[i] != '无')
          return 0x41 + i;
    }
    return 0;
    }

    必须是UNICODE才行。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jennyvenus
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

      5

      5

    发表于:2008-08-22 10:25:2814楼 得分:1
    引用 12 楼 ww2734 的回复:
    引用 9 楼 jdifjoifj 的回复:
    这个问题我以前也接触过,开始的时候我也找不到问题的原因,后来我进了一个技术交

    流群,这个群里的人挺多的,在里面可以沟通技术,你可以进去看一下.群号是:四+三+

    四+八+零+零+七+一。另外,这个群里可以接项目。

    明显是广告

    当然是广告,不是广告的话直接给答案就行了,那个群要是真能解决问题还用来csdn拉客?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bestoml
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 10:43:3215楼 得分:20
    这个,我做过.虽然看起来很难那样,技术是很简单的,能用CString吧?
    创建一个CString str[26],每一个数组里面放入对应字母开头的汉字,然后一个FOR循环,再来一个map,那就搞掂了.
    举个简单的小例子.
    CString  strChineseCharList[270] =
                {
                    "阿啊锕嗄厑"  ,
                    "八仈巴叭"
    };
    for(int i=0;i <2;i++)
    {

    int nCount=strChineseCharList[i].GetLength();
    for(int j=0;j <nCount;j++)
    {
    TCHAR tChar = strChineseCharList[i].GetAt(j);
    m_mapCharList[tChar] =TCHAR('A'+i);

    }

    }
    声明:map <TCHAR,TCHAR>m_mapCharList;
    当时我做的是汉字排序,所以需要第个字的顺序,或者你还可以优化一下.呵呵.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ringphone
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 11:20:1716楼 得分:1
    引用 14 楼 jennyvenus 的回复:
    引用 12 楼 ww2734 的回复:
    引用 9 楼 jdifjoifj 的回复:
    这个问题我以前也接触过,开始的时候我也找不到问题的原因,后来我进了一个技术交

    流群,这个群里的人挺多的,在里面可以沟通技术,你可以进去看一下.群号是:四+三+

    四+八+零+零+七+一。另外,这个群里可以接项目。

    明显是广告

    当然是广告,不是广告的话直接给答案就行了,那个群要是真能解决问题还用来csdn拉客?

    而且广告具有明显的误导性,没说进了群就找到问题的原因了,找不到问题的原因与这个群没有任何关系,这跟说
    “开始的时候我也找不到问题的原因,后来我去吃饭了,你也可以去吃饭”没什么两样。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved