C++获取汉字拼音首字母(转)



#include   <iostream>
#include   <string>
using   namespace   std;


static   char   convert(wchar_t   n);
static   bool   In(wchar_t   start,   wchar_t   end,   wchar_t   code);


int   main(int   argc,   char*   argv[])
{
string   sChinese   =   "丁红发";   //   输入的字符串


char c;
char   chr[3];
wchar_t   wchr   =   0;
int len = sChinese.length()/2;
char*   buff   = new   char[len];
memset(buff,   0x00,   sizeof(char)*sChinese.length()/2+1);


for(int   i   =   0,   j   =   0;   i   <   (sChinese.length()/2);   ++i)
{
  memset(chr,   0x00,   sizeof(chr));
  chr[0]   =   sChinese[j++];
  chr[1]   =   sChinese[j++];
  chr[2]   =   '\0';


  //   单个字符的编码   如:'我'   =   0xced2
  wchr   =   0;
  wchr   =   (chr[0]   &   0xff)   <<   8;
  wchr   |=   (chr[1]   &   0xff);


  buff[i]   =   convert(wchr);
}


cout   <<   "pin   yin   =   ["   <<   buff   <<   "]"   <<   endl;
cin>>c;
return   0;
}


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;
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UTF-8是一种Unicode字符编码标准,它可以表示几乎所有语言中的字符。拼音首字母是指汉字拼音中的字母序列,用于快速检索和排序。在UTF-8编码下,获取汉字拼音首字母需要进行一定的处理。 首先,我们需要使用一个中文拼音库,它提供了汉字和对应拼音的映射关系。可以使用Python编程语言中的pinyin库或其他类似的库来实现这个功能。 使用pinyin库,我们可以通过以下步骤获取汉字拼音首字母: 1. 导入pinyin库。 2. 提供一个汉字字符串作为输入。 3. 调用pinyin库中的pinyin方法,并将汉字作为参数传递给这个方法。 4. 通过遍历返回的拼音列表,把每个拼音首字母提取出来。 以下是示例代码: ```python from pinyin import pinyin def get_initials(word): pinyin_list = pinyin(word) # 获取汉字拼音列表 initials = [] for p in pinyin_list: initials.append(p[0][0]) # 提取每个拼音首字母 return initials # 测试 word = "中国" initials = get_initials(word) print(initials) # 输出:['Z', 'G'] ``` 在上述代码中,我们使用了pinyin库中的pinyin方法来获取汉字拼音列表。然后,我们遍历拼音列表,将每个拼音首字母提取出来,并存储在一个新的列表中。 最后,代码输出了汉字"中国"的拼音首字母,即['Z', 'G']。 这就是使用UTF-8编码获取汉字拼音首字母的方法。我们可以根据需要对代码进行适当的改动和扩展,以满足实际需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值