vc++/c++ 汉字取拼音首字母
来源:互联网 发布:互联网进入大数据时代 编辑:程序博客网 时间:2024/05/22 03:08
这两天花了点时间,项目中要求从汉字姓名中取出首字母,在网上试了好多个都没成功,后来根据一个比较简单的拿来改了一下。终于成功了。
win32控制台应用程序,unicode编码。测试过一些汉字,成功取出。不多说,直接上代码,因为我也不清楚原理。先用上再说。
// test2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"void FirstLetter(int nCode, char& strRet); void GetFirstLetter(char* strName, char* strFirstLetter, int nLen) {int ucHigh, ucLow; int nCode;char strRet;memset(strFirstLetter, 0, sizeof(nLen));int len = 0; int nameLen = (int)strlen(strName);for(int i=0; i < nameLen; i += 2){ucHigh = (int)(strName[i + 0] & 0xFF);ucLow = (int)(strName[i + 1] & 0xFF);if(ucHigh < 0xa1 || ucLow < 0xa1){continue;}else{nCode = (ucHigh - 0xa0) * 100 + ucLow - 0xa0;}FirstLetter(nCode, strRet);strFirstLetter[len] = strRet;len ++; }strFirstLetter[len] = '\0'; } void FirstLetter(int nCode, char& strLetter) { if(nCode >= 1601 && nCode < 1637) strLetter = 'A';if(nCode >= 1637 && nCode < 1833) strLetter = 'B';if(nCode >= 1833 && nCode < 2078) strLetter = 'C';if(nCode >= 2078 && nCode < 2274) strLetter = 'D';if(nCode >= 2274 && nCode < 2302) strLetter = 'E';if(nCode >= 2302 && nCode < 2433) strLetter = 'F';if(nCode >= 2433 && nCode < 2594) strLetter = 'G';if(nCode >= 2594 && nCode < 2787) strLetter = 'H';if(nCode >= 2787 && nCode < 3106) strLetter = 'J';if(nCode >= 3106 && nCode < 3212) strLetter = 'K';if(nCode >= 3212 && nCode < 3472) strLetter = 'L';if(nCode >= 3472 && nCode < 3635) strLetter = 'M';if(nCode >= 3635 && nCode < 3722) strLetter = 'N';if(nCode >= 3722 && nCode < 3730) strLetter = 'O';if(nCode >= 3730 && nCode < 3858) strLetter = 'P';if(nCode >= 3858 && nCode < 4027) strLetter = 'Q';if(nCode >= 4027 && nCode < 4086) strLetter = 'R';if(nCode >= 4086 && nCode < 4390) strLetter = 'S';if(nCode >= 4390 && nCode < 4558) strLetter = 'T';if(nCode >= 4558 && nCode < 4684) strLetter = 'W';if(nCode >= 4684 && nCode < 4925) strLetter = 'X';if(nCode >= 4925 && nCode < 5249) strLetter = 'Y';if(nCode >= 5249 && nCode < 5590) strLetter = 'Z';} int _tmain(int argc, _TCHAR* argv[]){char pTemp[] = "中华人民共和国";int nameLen = (int)strlen(pTemp);char pTemp1[128];//保存汉字的首字母GetFirstLetter(pTemp,pTemp1,128);cout << pTemp1 << endl;getchar();return 0;}
- vc++/c++ 汉字取拼音首字母
- 取汉字拼音首字母
- 取汉字的拼音首字母
- 根据汉字取拼音首字母
- 取汉字拼音首字母函数
- 取汉字拼音大写首字母
- JAVA 取汉字拼音首字母
- 取汉字拼音首字母的函数
- 取汉字拼音首字母的存储过程
- 取汉字拼音首字母的函数
- 取汉字拼音首字母的函数
- 取汉字拼音首字母的存储过程
- 取汉字拼音首字母的存储过程
- 取汉字拼音首字母的存储过程
- 应用自定义类,取汉字拼音首字母
- 取汉字拼音首字母的存储过程
- 取汉字拼音首字母的存储过程
- 取汉字拼音首字母的存储过程
- .NET实现之(ActiveX插件开发)
- 详解Linux系统修改环境变量PATH路径的方法
- 为移动而设计:交互设计篇
- Linux VNC黑屏(转)
- VS2010下写驱动和MFC,设置及编译问题
- vc++/c++ 汉字取拼音首字母
- 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件的解决方案
- 什么样的类需要编写拷贝构造函数
- C++ 智能指针详解
- 基于BindingSource的WinForm开发
- Linux I2C核心、总线与设备驱动
- 尚学堂马士兵_Struts2下载完成
- Win32信号量实现生产者消费者模型
- C++中指针数组与数组指针