C++实现获取汉字拼音首字母
- //根据汉字字符串返回首字母字符串
- #include <Windows.h>
- class GB2Alpha
- {
- public:
- GB2Alpha()
- {
- pAlpha = NULL;
- }
- ~GB2Alpha()
- {
- if (pAlpha)
- {
- delete[] pAlpha;
- pAlpha = NULL;
- }
- }
- //得到实际的拼音首字母buffer
- const char* GetAlpha(const char* pStr)
- {
- if (pAlpha)
- {
- delete pAlpha;
- pAlpha = NULL;
- }
- if (!pStr)
- {
- return NULL;
- }
- char chr[3];
- wchar_t wchr = 0;
- unsigned int nlen = strlen(pStr);
- pAlpha = new char[nlen+1];
- memset(pAlpha,0x00,nlen+1);
- int nIndex = 0; //首字母数组的长度索引
- for (int i = 0;i< nlen ;)
- {
- char tmpchar = '\0';
- if (pStr[i] > 0) //非汉字
- {
- if (pStr[i] >= 'a' && pStr[i] <= 'z')
- {
- tmpchar = (char)(pStr[i] - 'a' + 'A');
- pAlpha[nIndex++] = tmpchar;
- }
- if (pStr[i] >= 'A' && pStr[i] <= 'Z')
- {
- tmpchar = pStr[i];
- pAlpha[nIndex++] = tmpchar;
- }
- i++;
- }
- else //汉字
- {
- memset(chr, 0x00, sizeof(chr));
- chr[0] = pStr[i++];
- chr[1] = pStr[i++];
- chr[2] = '\0';
- wchr = 0;
- wchr = (chr[0] & 0xff) << 8;
- wchr |= (chr[1] & 0xff);
- tmpchar = convert(wchr);
- if(tmpchar != '\0')
- {
- pAlpha[nIndex++] = tmpchar;
- }
- }
- }
- return pAlpha;
- }
- private:
- //汉字首字母转换表
- char convert(wchar_t n)
- {
- if (In(0xB0A1,0xB0C4,n)) return 'A';
- if (In(0XB0C5,0XB2C0,n)) return 'B';
- if (In(0xB2C1,0xB4ED,n)) return 'C';
- if (In(0xB4EE,0xB6E9,n)) return 'D';
- if (In(0xB6EA,0xB7A1,n)) return 'E';
- if (In(0xB7A2,0xB8c0,n)) return 'F';
- if (In(0xB8C1,0xB9FD,n)) return 'G';
- if (In(0xB9FE,0xBBF6,n)) return 'H';
- if (In(0xBBF7,0xBFA5,n)) return 'J';
- if (In(0xBFA6,0xC0AB,n)) return 'K';
- if (In(0xC0AC,0xC2E7,n)) return 'L';
- if (In(0xC2E8,0xC4C2,n)) return 'M';
- if (In(0xC4C3,0xC5B5,n)) return 'N';
- if (In(0xC5B6,0xC5BD,n)) return 'O';
- if (In(0xC5BE,0xC6D9,n)) return 'P';
- if (In(0xC6DA,0xC8BA,n)) return 'Q';
- if (In(0xC8BB,0xC8F5,n)) return 'R';
- if (In(0xC8F6,0xCBF0,n)) return 'S';
- if (In(0xCBFA,0xCDD9,n)) return 'T';
- if (In(0xCDDA,0xCEF3,n)) return 'W';
- if (In(0xCEF4,0xD188,n)) return 'X';
- if (In(0xD1B9,0xD4D0,n)) return 'Y';
- if (In(0xD4D1,0xD7F9,n)) return 'Z';
- return '\0';
- }
- bool In(wchar_t start, wchar_t end, wchar_t code)
- {
- if (code >= start && code <= end)
- {
- return true;
- }
- return false;
- }
- protected:
- char* pAlpha;
- };
C++实现获取汉字拼音首字母相关推荐
- php获取汉字的首字母,php获取汉字拼音首字母的方法
现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序.这是中国人大多数使用的排序方法.那么在php程序中该如何操作呢? 下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的 ...
- Excel中如何获取汉字拼音首字母
Excel中如何获取汉字拼音首字母 在工作中,为了方便查询.排序或者编码,需要生成汉字内容信息的首字母,如果信息很多的话,一个个录入是一件很麻烦的事情,下面给大家介绍一个便捷的方法,轻松获取汉字拼音首 ...
- iOS 获取汉字拼音首字母
iOS获取汉字首字母 这个一般用在通讯里排序居多,我这里就是用到了通讯里的排序,然后就来mark一下,记录. 核心代码 char pinyinFirstLetter(unsigned short ha ...
- 【C#】获取汉字拼音首字母和全拼
文章目录 利用CJK统一表意符号获取首字母 获取首字母和全拼 另附sql server解决方案 来源 java的同学可以了解下pinyin4j,js可以了解ChinesePY.js 获取拼音的意义多在 ...
- iOS获取汉字拼音首字母的方法
iOS获取汉字拼音首字母的方法 之前在项目中需要根据昵称的首字母进行排序,蹚了几个坑,今天记录一下.其实iOS系统封装的就有获取汉字首字母的方法,但不推荐,想看最优解的同学直接略过: var name ...
- php获取拼音首字母排序,PHP获取汉字拼音首字母的方法
PHP获取汉字拼音首字母的方法: function getfirstchar($s0){ $fchar = ord($s0{0}); if($fchar >= ord("A" ...
- 在delphi 7中实现获取汉字拼音首字母
公司的餐饮系统出品的助记码,还没实现自动从出品名称获取汉字拼音首字母. 所以在网上找了三种解决方法, 一种是kaguo 的使用常用汉字拼音查找方法,这种代码十分简单,实现方便,但是这种代码仅仅是一级字 ...
- sqlserver 获取汉字拼音首字母
sqlserver 获取汉字拼音首字母 调用方式: select dbo.fun_getPY('张三') as result 脚本: create function [dbo].[fun_getPY] ...
- 在Excel中如何获取汉字拼音首字母?
转自:https://jingyan.baidu.com/article/0a52e3f43c3f6abf63ed7259.html百度经验 在Excel中如何获取汉字拼音首字母?| 在工作中,为了方 ...
- C# 获取汉字拼音首字母
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本节探讨C#获取汉字拼音首字母的方法: 代码类东西, ...
最新文章
- 百度AI“杀入”新领域,我举双手支持!
- BUU[SCTF2019]Who is he
- 如何定义一个 Listint,string 这样的 List ?
- 1056. Mice and Rice (25)
- [渝粤教育] 平顶山学院 区域分析与规划 参考 资料
- 给model模型传数组参数
- 登录首页时报错:java.lang.IllegalArgumentException (不合法的参数异常)
- 数学之美 第六章——信息的度量和作用
- Cortex-M0核芯片bootloader调试过程
- 知物由学 | AI与黑产的攻守之道,详解攻击类文字图像的检测
- 美国高考能不能带计算机,这件“神器”在美国被高中允许却被美国大学禁止
- 通用的WAN协议配置
- C#:Krypton控件使用方法详解(第九讲) ——kryptonRadioButton
- PTA 7-85 根据输入的空气污染指数,输出相应的信息。
- android 执行病毒,警惕安卓手机病毒Android/Fakeapp.ox
- Android-音视频学习系列-(九)Android-端实现-rtmp-推流,零基础如何成为高级Android开发
- iTutorGroup成为汇丰高尔夫冠军赛唯一官方语言培训机构
- RedHat-RHCE-RHEL8
- 基于Web SCADA平台构建气体计量系统及SCADA监控系统
- 如何优化 Mac 笔记本电脑的电池续航能力,解决电池问题
热门文章
- 初识DOM(文档对象模型)
- Gartner报告:多数CIO还未对数字化做好准备
- 如何让Div层悬浮在Flash Object对象之上(转载)
- 小米华为鸿蒙,华为鸿蒙比小米MIUI快,老外上手出结果
- MachineLearning经典图
- CentosRedhat下bcm43142博通无线网卡linux驱动之二
- 品高云产品经理邱洋:做国内云计算第一品牌
- 使用SQL语句的子查询批量复制表数据
- struts2.xml中使用chain和redirectAction这两个类型结果(type-result)时,报检查错误(validation)...
- Linux 与 Windows 计算文件夹大小