C语言获取汉字拼音首字母

2010年7月14日 | 分类: C/C++ | 标签: C/C++

多网友提意见让我给小飞信加上好友搜索功能,这几天太忙,抽时间把其它的功能加了一下,现在就剩下这个功能没做好了,想做成按汉字首字母搜索的那种,于是查了查资料写了个把汉字转换成首字母的程序,贴一下有需要的可以拿去用,也顺便给自己做个备份。

下面是程序,用了glib里面的一个函数g_convert,用iconv也可以,g_convert更方便一些就直接拿来用了。

#include

#include

#include

#include

gchar getpychar(guchar uword0 , guchar uword1)

{

gchar pychar;

int i1 = (short)(uword0 - '/0');

int i2 = (short)(uword1 - '/0');

int tmp = i1 * 256 + i2;

if(tmp >= 45217 && tmp <= 45252) pychar = 'A';

else if(tmp >= 45253 && tmp <= 45760) pychar = 'B';

else if(tmp >= 45761 && tmp <= 46317) pychar = 'C';

else if(tmp >= 46318 && tmp <= 46825) pychar = 'D';

else if(tmp >= 46826 && tmp <= 47009) pychar = 'E';

else if(tmp >= 47010 && tmp <= 47296) pychar = 'F';

else if(tmp >= 47297 && tmp <= 47613) pychar = 'G';

else if(tmp >= 47614 && tmp <= 48118) pychar = 'H';

else if(tmp >= 48119 && tmp <= 49061) pychar = 'J';

else if(tmp >= 49062 && tmp <= 49323) pychar = 'K';

else if(tmp >= 49324 && tmp <= 49895) pychar = 'L';

else if(tmp >= 49896 && tmp <= 50370) pychar = 'M';

else if(tmp >= 50371 && tmp <= 50613) pychar = 'N';

else if(tmp >= 50614 && tmp <= 50621) pychar = 'O';

else if(tmp >= 50622 && tmp <= 50905) pychar = 'P';

else if(tmp >= 50906 && tmp <= 51386) pychar = 'Q';

else if(tmp >= 51387 && tmp <= 51445) pychar = 'R';

else if(tmp >= 51446 && tmp <= 52217) pychar = 'S';

else if(tmp >= 52218 && tmp <= 52697) pychar = 'T';

else if(tmp >= 52698 && tmp <= 52979) pychar = 'W';

else if(tmp >= 52980 && tmp <= 53640) pychar = 'X';

else if(tmp >= 53689 && tmp <= 54480) pychar = 'Y';

else if(tmp >= 54481 && tmp <= 55289) pychar = 'Z';

else pychar = ' ';

return pychar;

}

gchar *getpystring(const gchar *in)

{

gsize inlen , olen , i , j = 0;

gchar *gword = g_convert(in , strlen(in)

, "gb2312" , "utf8" , &inlen , &olen , NULL);

guchar *uword = (guchar*)gword;

gchar *out = (gchar*)malloc(olen);

memset(out , 0 , olen);

for(i = 0 ; i < olen ; i++){

if(uword[i] >= 0xa1){

if(uword[i] != 0xa3){

out[j++] = getpychar(uword[i] , uword[i + 1]);

i ++;

}

}else{

out[j++] = (gchar)uword[i];

}

}

return out;

}

int main(int argc , char **argv)

{

printf("%s/n" , getpystring("linux是一个出色的操作系统"));

return 0;

}

C语言获取汉字拼音首字母

2010年7月14日 | 分类: C/C++ | 标签: C/C++

多网友提意见让我给小飞信加上好友搜索功能,这几天太忙,抽时间把其它的功能加了一下,现在就剩下这个功能没做好了,想做成按汉字首字母搜索的那种,于是查了查资料写了个把汉字转换成首字母的程序,贴一下有需要的可以拿去用,也顺便给自己做个备份。

下面是程序,用了glib里面的一个函数g_convert,用iconv也可以,g_convert更方便一些就直接拿来用了。

#include

#include

#include

#include

gchar getpychar(guchar uword0 , guchar uword1)

{

gchar pychar;

int i1 = (short)(uword0 - '/0');

int i2 = (short)(uword1 - '/0');

int tmp = i1 * 256 + i2;

if(tmp >= 45217 && tmp <= 45252) pychar = 'A';

else if(tmp >= 45253 && tmp <= 45760) pychar = 'B';

else if(tmp >= 45761 && tmp <= 46317) pychar = 'C';

else if(tmp >= 46318 && tmp <= 46825) pychar = 'D';

else if(tmp >= 46826 && tmp <= 47009) pychar = 'E';

else if(tmp >= 47010 && tmp <= 47296) pychar = 'F';

else if(tmp >= 47297 && tmp <= 47613) pychar = 'G';

else if(tmp >= 47614 && tmp <= 48118) pychar = 'H';

else if(tmp >= 48119 && tmp <= 49061) pychar = 'J';

else if(tmp >= 49062 && tmp <= 49323) pychar = 'K';

else if(tmp >= 49324 && tmp <= 49895) pychar = 'L';

else if(tmp >= 49896 && tmp <= 50370) pychar = 'M';

else if(tmp >= 50371 && tmp <= 50613) pychar = 'N';

else if(tmp >= 50614 && tmp <= 50621) pychar = 'O';

else if(tmp >= 50622 && tmp <= 50905) pychar = 'P';

else if(tmp >= 50906 && tmp <= 51386) pychar = 'Q';

else if(tmp >= 51387 && tmp <= 51445) pychar = 'R';

else if(tmp >= 51446 && tmp <= 52217) pychar = 'S';

else if(tmp >= 52218 && tmp <= 52697) pychar = 'T';

else if(tmp >= 52698 && tmp <= 52979) pychar = 'W';

else if(tmp >= 52980 && tmp <= 53640) pychar = 'X';

else if(tmp >= 53689 && tmp <= 54480) pychar = 'Y';

else if(tmp >= 54481 && tmp <= 55289) pychar = 'Z';

else pychar = ' ';

return pychar;

}

gchar *getpystring(const gchar *in)

{

gsize inlen , olen , i , j = 0;

gchar *gword = g_convert(in , strlen(in)

, "gb2312" , "utf8" , &inlen , &olen , NULL);

guchar *uword = (guchar*)gword;

gchar *out = (gchar*)malloc(olen);

memset(out , 0 , olen);

for(i = 0 ; i < olen ; i++){

if(uword[i] >= 0xa1){

if(uword[i] != 0xa3){

out[j++] = getpychar(uword[i] , uword[i + 1]);

i ++;

}

}else{

out[j++] = (gchar)uword[i];

}

}

return out;

}

int main(int argc , char **argv)

{

printf("%s/n" , getpystring("linux是一个出色的操作系统"));

return 0;

}

c语言 获取中文首字母,C语言获取汉字拼音首字母相关推荐

  1. php 获取首字母,PHP_php 获得汉字拼音首字母的函数,php获取汉字拼音的第一个字母 - phpStudy...

    php 获得汉字拼音首字母的函数 php获取汉字拼音的第一个字母 复制代码 代码如下: function getinitial($str) { $asc=ord(substr($str,0,1)); ...

  2. mysql 汉字首字母_MySQL查询汉字拼音首字母的方法

    下面为您介绍了MySQL查询汉字拼音首字母的方法,该方法极具实用价值,如果您之前遇到过类似方面的问题,不妨一看. MySQL查询汉字拼音首字母方法如下: 1.建立拼音首字母资料表 Sql代码: DRO ...

  3. JS获取汉字拼音首字母代码

    JS获取汉字拼音首字母代码 1.汉字拼音首字母列表 本列表包含了20902个汉字,用于配合 ToChineseSpell函数使用,本表收录的字符的Unicode编码范围为19968至40869, XD ...

  4. php获取汉字的首字母,php获取汉字拼音首字母的方法

    现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序.这是中国人大多数使用的排序方法.那么在php程序中该如何操作呢? 下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的 ...

  5. mysql获取汉字拼音首字母_MySQL数据库获取汉字拼音的首字母函数

    需求简介:最 近的一个项目,想实现如下图所示的显示效果.很明显,如果能够获取对应的汉字词组的拼音首字母就可以实现了,如果是固定的几个汉字,人为的拼一下就可以 了,不过项目中有多处功能是需要这个效果的, ...

  6. Excel中如何获取汉字拼音首字母

    Excel中如何获取汉字拼音首字母 在工作中,为了方便查询.排序或者编码,需要生成汉字内容信息的首字母,如果信息很多的话,一个个录入是一件很麻烦的事情,下面给大家介绍一个便捷的方法,轻松获取汉字拼音首 ...

  7. iOS 获取汉字拼音首字母

    iOS获取汉字首字母 这个一般用在通讯里排序居多,我这里就是用到了通讯里的排序,然后就来mark一下,记录. 核心代码 char pinyinFirstLetter(unsigned short ha ...

  8. 【C#】获取汉字拼音首字母和全拼

    文章目录 利用CJK统一表意符号获取首字母 获取首字母和全拼 另附sql server解决方案 来源 java的同学可以了解下pinyin4j,js可以了解ChinesePY.js 获取拼音的意义多在 ...

  9. php 汉字拼音首字母,PHP获得中文汉字拼音首字母例子

    获取给出汉字中拼音的第一个汉字字母我们可以利用汉字的一个编码来进行判断,下面我们来给大家介绍一个例子,非常的简单好用. 先来看看怎样取得单个汉字的拼音首字母,请看下面这个函数,它支持GBK和UTF8编 ...

  10. php获取拼音首字母排序,PHP获取汉字拼音首字母的方法

    PHP获取汉字拼音首字母的方法: function getfirstchar($s0){ $fchar = ord($s0{0}); if($fchar >= ord("A" ...

最新文章

  1. Pyhton 内置 itertools 模块chain、accumulate、compress、drop、take等函数使用
  2. 学习练习SQL的数据库employee文件
  3. printf 格式字符串的 正则化表达式
  4. vue让元素固定_vue 监听dom元素的滚动事件 实现某元素吸顶或者固定位置显示
  5. 第一个Polymer应用 - (2)创建你自己的元素
  6. SOA项目失败十大原因及完善建议(转)
  7. 20.UNIX 环境高级编程--数据库函数库
  8. 区块链专利正从量向质转变 智慧金融、医疗健康和能源三领域质量最高
  9. 绘制奥林匹克五环旗。
  10. mysql 索引配置_Mysql索引配置
  11. CIDR(构成超网)
  12. bochs linux.img下载,bochs win10 img镜像文件
  13. ThingJS官方案例(四):快速应用3D场景下的模拟导航能力
  14. 第2期技术: Double Q-learning算法原理
  15. [ 渗透入门篇 ] 从渗透测试执行标准着手的渗透学习大纲。掌握了这些知识点还担心找不到工作?
  16. 强制员工五一加班 中青宝董事长李瑞杰辞职:94年儿子接任
  17. 一键安装docker
  18. Avisynth + DirectShow + WebCamera 实现Avisynth脚本访问摄像头
  19. Evaluating Persistent Memory Range Indexes
  20. codevs贪吃的九头龙

热门文章

  1. 各大学习平台资源整合【网站篇一】
  2. 2021春招美团算法笔试题
  3. web实现全景图的交互展示
  4. MATLAB读二进制数据文件
  5. mysql begin end 定界符_mysql存储过程BEGIN END复合语句用法示例
  6. app系统账号绑定微信openid,H5与后台交互
  7. GXOI2019 题解
  8. 计算机论文要求多少字,论文需要写多少字
  9. html页面图片可点击事件,html中如何给图片添加点击事件的详解
  10. idm下载速度只有几十kb idm下载速度慢解决办法