对于前面获取字符串汉字全拼音的功能,大家应该有个了解了。现在我又综合广大网友流传的获取字符串汉字拼音首字母的功能进行了整理。介绍如下

这个功能写的稍微有点复杂 使用3个函数解决了获取字符串汉字首拼音串的问题。

代码如下:

 bool GetChineseCodeGBK(const char *pChineseCharacter, char *pGBK, const size_t nChineseCharacter = , const size_t nGBK = )
{
bool is_success = false; do
{
int len = sprintf_s(pGBK, nGBK, "%X%X", (unsigned char)pChineseCharacter[], (unsigned char)pChineseCharacter[]);
if (len<)
return is_success = false;
else
return is_success = true;
} while (false); return is_success;
}
 char GetFirstCharacter(const char *pGBK, const size_t nGBK = )
{
int nCode2 = atol(pGBK);//error
int nCode = strtol(pGBK, NULL, );//ok
int nCode3;
sscanf_s(pGBK, "%x",&nCode3); //ok
int areacode[] = { , , , , , , , , , , , , , , , , , , , , , , , , , , };
for (int i = ; i < ; i++)
{
if (areacode[i] <= nCode && nCode < areacode[i + ])
{
return (char)('A'+i);
}
}
return (char);
}
 std::string get_first_pinyin_string(const std::string &strHanzi)
{
std::string retFistPinyinString;
char retFistPinyin; if (strHanzi.empty() == true)
{
return ;
} for (size_t i = ; i < strHanzi.length(); ++i)
{
char GBK[] = { }; if (static_cast<unsigned char>(strHanzi[i]) < 0x80)
{
retFistPinyinString += strHanzi[i];
continue;
} if (GetChineseCodeGBK(&strHanzi[i], GBK))
{
retFistPinyin = GetFirstCharacter(GBK);
if ((char) != retFistPinyin)
{
retFistPinyinString += retFistPinyin;
++i;
}
}
} return retFistPinyinString;
}

下面是测试代码

 int _tmain(int argc, _TCHAR* argv[])
{ std::string str_test10("任晓霞l2;哈哈哈mu男人");
std::string str_test10_rt;
str_test10_rt = get_first_pinyin_string(str_test10); return ;
}

有兴趣的朋友可以试试啦。

关于C++对汉字拼音的处理(2)的更多相关文章

  1. C# 获取汉字拼音首字母

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精   本节探讨C#获取汉字拼音首字母的方法: 代码类东西, ...

  2. 通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母

    通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母 例如 我的中国心    ==> wdzgx 我的中国心ya ==> wdzgxya woai我的中国 ==> w ...

  3. C/C++ 获取汉字拼音

    参考文章:http://blog.csdn.net/thenile/article/details/6318521 在参考文章的基础上,去掉了代码中C++特有的语法和数据类型,用纯C语言实现了获取汉字 ...

  4. C/C++ 获取汉字拼音首字母

    #include <stdint.h> #include <stdio.h> #include <ctype.h> #include <string.h> ...

  5. MySQL数据库获取多个汉字拼音的首字母函数

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

  6. MySQL数据库获取汉字拼音的首字母函数

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

  7. AutoCompleteTextView输入汉字拼音首字母实现过滤提示(支持多音字,Filterable的使用)

    AutoCompleteTextView具有输入提示的功能,但是它的这种提示不适合对股票列表的过滤,如果你玩过股票软件,就会知道只要输入股票名称的首字母或股票代码就会出现符合匹配的股票,这种过滤怎么实 ...

  8. C#获取汉字拼音

    C#获取汉字拼音 using System;  using System.Collections.Generic;  using System.Text;  using System.Text.Reg ...

  9. C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母

    首先下载Visual Studio International Pack 1.0,官方下载地址:http://www.microsoft.com/downloads/zh-cn/details.asp ...

  10. OC1_汉字拼音转换 练习

    // // WordManager.h // OC1_汉字拼音转换 // // Created by zhangxueming on 15/4/27. // Copyright (c) 2015年 z ...

随机推荐

  1. Fibonacci数列小程序

    Fibonacci数列小程序 问题分析:Fibonacci数列特征是前两项数均为1,从第三项起,前两项的和为第三项的数的数值用公式归纳起来为:f1=f2=1.f1=f1+f2.f2=f1+f2. 程序 ...

  2. POJ1873 - Balance(01背包)

    题目大意 现有一个天平,它有C个挂钩和G个砝码,问有多少种方法可以使得天平平衡(砝码必须用完) 题解 其实就是让背包容量为0的方法有多少种方法,但是这样的话背包容量会出现负数,所以可以平移一下,背包容 ...

  3. Linux的read命令

    对于写bash脚本的朋友,read命令是不可或缺的,需要实践一下就可以了解read命令的大致用途: 编写一个脚本: #!/bin/bash # hao32 test read echo -e &quo ...

  4. Native code - how to get function call stack (backtrace) programatically 附带源代码

    自己根据 https://github.com/zhuowei/libcorkscrew-ndk 上的库做了一个包装库并附带使用的例子(executable 分支),具体代码在自己的代码仓库里,名字叫 ...

  5. Android UI开发第三十二篇——Creating a Navigation Drawer

    Navigation Drawer是从屏幕的左侧滑出,显示应用导航的视图.官方是这样定义的: The navigation drawer is a panel that displays the ap ...

  6. get-random生成电话号码

    "138"+((0..9|Get-Random -count 10) -join $null) From:http://blog.csdn.net/shrekz/article/d ...

  7. C++ CheckListBox

    实现过程 CCheckListBox    listbox1;     listbox1.AddString("葡萄");     listbox1.AddString(" ...

  8. Windows系统下的adb 配置

    1.将附件中的adb_tools.rar文件下载到电脑上,并解压.(注意:其路径尽量避免带有中文字符) 2.右键点击“计算机”->“属性”->“高级系统设置”->“高级”->“ ...

  9. windows下载安装MariaDB5.5.32 绿色版

    1.下载地址: http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/mariadb-5.5.32/win32-packages/mariadb-5.5.32 ...

  10. [HTML5] Accessible Icon Buttons

    Icon buttons are very common in web applications, yet they often have accessibility problems. Learn ...