C语言汉字拼音

复制代码
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <glib.h> 
  
gchar getpychar(guchar uword0 , guchar uword1) 
{ 
gchar pychar; 
  
int i1 = (short)(uword0 - '/0'); 
int i2 = (short)(uword1 - '/0'); 
  
int tmp = i1 * 256 + i2; 
  
if(tmp >= 45217 && tmp <= 45252) pychar = 'A';  
else if(tmp >= 45253 && tmp <= 45760) pychar = 'B';  
else if(tmp >= 45761 && tmp <= 46317) pychar = 'C';  
else if(tmp >= 46318 && tmp <= 46825) pychar = 'D';  
else if(tmp >= 46826 && tmp <= 47009) pychar = 'E';  
else if(tmp >= 47010 && tmp <= 47296) pychar = 'F';  
else if(tmp >= 47297 && tmp <= 47613) pychar = 'G';  
else if(tmp >= 47614 && tmp <= 48118) pychar = 'H';  
else if(tmp >= 48119 && tmp <= 49061) pychar = 'J';  
else if(tmp >= 49062 && tmp <= 49323) pychar = 'K';  
else if(tmp >= 49324 && tmp <= 49895) pychar = 'L';  
else if(tmp >= 49896 && tmp <= 50370) pychar = 'M';  
else if(tmp >= 50371 && tmp <= 50613) pychar = 'N';  
else if(tmp >= 50614 && tmp <= 50621) pychar = 'O';  
else if(tmp >= 50622 && tmp <= 50905) pychar = 'P';  
else if(tmp >= 50906 && tmp <= 51386) pychar = 'Q';  
else if(tmp >= 51387 && tmp <= 51445) pychar = 'R';  
else if(tmp >= 51446 && tmp <= 52217) pychar = 'S';  
else if(tmp >= 52218 && tmp <= 52697) pychar = 'T';  
else if(tmp >= 52698 && tmp <= 52979) pychar = 'W';  
else if(tmp >= 52980 && tmp <= 53640) pychar = 'X';  
else if(tmp >= 53689 && tmp <= 54480) pychar = 'Y';  
else if(tmp >= 54481 && tmp <= 55289) pychar = 'Z';  
else pychar = ' '; 
  
return pychar; 
} 
  
gchar *getpystring(const gchar *in) 
{ 
gsize inlen , olen , i , j = 0; 
gchar *gword = g_convert(in , strlen(in) 
, "gb2312" , "utf8" , &inlen , &olen , NULL); 
  
guchar *uword = (guchar*)gword; 
gchar *out = (gchar*)malloc(olen); 
  
memset(out , 0 , olen); 
  
for(i = 0 ; i < olen ; i++){ 
if(uword[i] >= 0xa1){ 
if(uword[i] != 0xa3){ 
out[j++] = getpychar(uword[i] , uword[i + 1]); 
i ++; 
} 
}else{ 
out[j++] = (gchar)uword[i]; 
} 
} 
  
return out; 
  
} 
复制代码

 

posted @   myrj  阅读(247)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2020-09-16 WORD2010
点击右上角即可分享
微信分享提示