C/C++ 获取汉字拼音首字母
#include <stdint.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h> bool between(uint32_t start,uint32_t end,uint32_t aim);
char get_first_letter(wchar_t wchar);
void get_first_letters(const char *szChinese,char piyinBuf[],const uint32_t maxBufLen,uint32_t &piyinBufLen); int32_t main()
{
char buf[] = {};
uint32_t len = ;
const char *szChinese = "qaz123获取汉字拼音";
get_first_letters(szChinese,buf,,len);
printf("%s\n",buf);
return ;
} void get_first_letters(const char *szChinese,char piyinBuf[],const uint32_t maxBufLen,uint32_t &piyinBufLen)
{
uint8_t chr[];
piyinBufLen = ;
uint32_t chineseLen = strlen(szChinese);
for (uint32_t i = ; i < chineseLen && piyinBufLen < maxBufLen; ++i)
{
uint8_t c = szChinese[i];
// 排除askii 码
if (isascii(c))
{
piyinBuf[piyinBufLen++] = c;
}
else
{
chr[] = szChinese[i];
chr[] = szChinese[++i];
chr[] = ;
wchar_t wchr = ;
wchr = (chr[] & 0xff) << ;
wchr |= (chr[] & 0xff);
piyinBuf[piyinBufLen++] = toupper(get_first_letter(wchr));
}
}
} bool between(wchar_t start,wchar_t end,wchar_t aim)
{
if (start <= aim && aim <= end)
{
return true;
}
return false;
} char get_first_letter(wchar_t wchar)
{
if (between(0xB0A1,0xB0C4,wchar)) return 'a';
if (between(0XB0C5,0XB2C0,wchar)) return 'b';
if (between(0xB2C1,0xB4ED,wchar)) return 'c';
if (between(0xB4EE,0xB6E9,wchar)) return 'd';
if (between(0xB6EA,0xB7A1,wchar)) return 'e';
if (between(0xB7A2,0xB8c0,wchar)) return 'f';
if (between(0xB8C1,0xB9FD,wchar)) return 'g';
if (between(0xB9FE,0xBBF6,wchar)) return 'h';
if (between(0xBBF7,0xBFA5,wchar)) return 'j';
if (between(0xBFA6,0xC0AB,wchar)) return 'k';
if (between(0xC0AC,0xC2E7,wchar)) return 'l';
if (between(0xC2E8,0xC4C2,wchar)) return 'm';
if (between(0xC4C3,0xC5B5,wchar)) return 'n';
if (between(0xC5B6,0xC5BD,wchar)) return 'o';
if (between(0xC5BE,0xC6D9,wchar)) return 'p';
if (between(0xC6DA,0xC8BA,wchar)) return 'q';
if (between(0xC8BB,0xC8F5,wchar)) return 'r';
if (between(0xC8F6,0xCBF0,wchar)) return 's';
if (between(0xCBFA,0xCDD9,wchar)) return 't';
if (between(0xCDDA,0xCEF3,wchar)) return 'w';
if (between(0xCEF4,0xD188,wchar)) return 'x';
if (between(0xD1B9,0xD4D0,wchar)) return 'y';
if (between(0xD4D1,0xD7F9,wchar)) return 'z';
return '\0';
}
C/C++ 获取汉字拼音首字母的更多相关文章
- C# 获取汉字拼音首字母
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本节探讨C#获取汉字拼音首字母的方法: 代码类东西, ...
- C# 获取汉字拼音首字母/全拼
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本节探讨C#获取汉字拼音首字母的方法: 代码类东西, ...
- java获取汉字拼音首字母 --转载
在项目中要更能根据某些查询条件(比如姓名)的首字母作为条件进行查询,比如查一个叫"李晓明"的人,可以输入'lxm'.写了一个工具类如下: import java.io.Unsupp ...
- JAVA获取汉字拼音首字母
package com.common.util; import java.io.UnsupportedEncodingException; /** * 取得给定汉字串的首字母串,即声母串 * Titl ...
- php获取汉字拼音首字母的方法
现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序.这是中国人大多数使用的排序方法.那么在php程序中该如何操作呢? 下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的 ...
- qt 获取汉字拼音首字母
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDebug>#include ...
- php 获取汉字拼音首字母的函数
function getFirstChar($string){ if($string{0}>="A" and $string{0}<="z" )re ...
- 获取汉字拼音&首字母
pinyin4j https://www.cnblogs.com/yjq520/p/7681537.html
- PHP获取汉字拼音首字母 截取中文字符串
http://blog.csdn.net/everything1209/article/details/39005785 substr是按字符分割,而mb_strcut是按字节来分割,但是都不会产生半 ...
随机推荐
- ural 1219. Symbolic Sequence
1219. Symbolic Sequence Time limit: 1.0 secondMemory limit: 64 MB Your program is to output a sequen ...
- BZOJ1695 : [Usaco2007 Demo]Walk the Talk
观察单词表可以发现: 对于长度为3的单词,前两个字母相同的单词不超过7个 对于长度为4的单词,前两个字母相同的单词不超过35个 于是首先$O(26*26*nm)$预处理出 s1[x][i][j]表示( ...
- 关于求解不定方程的n(n-1)=2m(m-1)的解法的总结
主要参考下面两篇论文 1.<不定方程x(x-1)=Dy(y-1)的解法> 2.<用递推公式求一个不定方程的正整数解> 原有题目意思是 记得有一次全班去唱K, 其中有个活动是情歌 ...
- 转 sql 时间转换格式 convert(varchar(10),字段名,转换格式)
convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121)CONVERT为日期转换函数,一般就是在时间类型(datetime, ...
- sql server导出insert语句
在所需要导出数据库上右键 选择[任务] 然后选择[生成脚本] 选择数据库,点击下一步到[数据脚本选项] 编写数据的脚本 选择为true 这一步很重要 下一步选择要导出的对象 下一步选择表 点击完成 ...
- List 中对象属性排序
有几个方法可以实现:让 Student 实现Comparable接口,或是实例化一 个比较器, 现在用 Comparator 比较器实例来做一个:ComparableTest.java import ...
- Camera Calibration and 3D Reconstruction
3D RECONSTRUCTION WITH OPENCV AND POINT CLOUD LIBRARY http://stackoverflow.com/questions/19205557/op ...
- 8.按要求编写Java应用程序。 (1)建立一个名叫Cat的类: 属性:姓名、毛色、年龄 行为:显示姓名、喊叫 (2)编写主类: 创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输 出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。
package liu0917; public class Cat { String name="妮妮"; int age=2; String maose="灰色&quo ...
- Scala中Zip相关的函数
在Scala中存在好几个Zip相关的函数,比如zip,zipAll,zipped 以及zipWithIndex等等.我们在代码中也经常看到这样的函数,这篇文章主要介绍一下这些函数的区别以及使用. 1. ...
- _jobdu_1384:二维数组中的查找
/************************************************************************/ /* 题目描述: 在一个二维数组中,每一行都按照从 ...