日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

vc++/c++ 汉字取拼音首字母

發布時間:2023/12/9 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vc++/c++ 汉字取拼音首字母 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這兩天花了點時間,項目中要求從漢字姓名中取出首字母,在網上試了好多個都沒成功,后來根據一個比較簡單的拿來改了一下。終于成功了。

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++ 汉字取拼音首字母的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。