當前位置:首頁 » 編程語言 » c語言中文轉拼音
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中文轉拼音

發布時間: 2023-04-28 17:56:03

Ⅰ 用c語言編寫程序:給你一個三位正整數,輸出相應讀法的漢語拼音,每個音之間用一個空格間隔。

#include<math.h>
#include<stdio.h>
#include<string.h>
#defineMIN(a,b)((a)<(b)?(a):(b))

char*numpinyin(char*buf,unsignedintn)
{
switch吵鄭(n)
{
case0:strcpy(buf,"líng");returnbuf;break;
case1:strcpy(buf,"yī");returnbuf;break;
case2:strcpy(buf,"èr");returnbuf;break;
case3:strcpy(buf,"sān");returnbuf;break;
case4:strcpy(buf,"sì");returnbuf;break;
case5:strcpy(buf,"wǔ");returnbuf;升橘頌break;
case6:strcpy(buf,"liù");returnbuf;break;
case7:strcpy(buf,"qī");returnbuf;break;
case8:strcpy(buf,"bā");returnbuf;break;
case9:strcpy(buf,"jiǔ");伍鎮returnbuf;break;
case10:strcpy(buf,"shí");returnbuf;break;
case100:strcpy(buf,"bǎi");returnbuf;break;
default:returnNULL;break;
}
}

intgetdigit(unsignedintn,unsignedintd)
{
charstr[4]="";
if(n<=999)
{
sprintf(str,"%03d",n);
returnstr[d]-48;
}
else
return-1;
}

intpower(intx,inty)
{
intresult=1,i=0;
for(;i<y;i++)
result*=x;
returnresult;
}

intmain(void)
{
intn=0,num=0,count=0,i=0;
charbuffer[5]="";
scanf("%d",&n);
for(;count<MIN(n,20);count++)
{
scanf("%d",&num);
if(num>999)
printf("Thenumberyoutypedisnotathree-digitorsmallerinteger! ");
else
{
if(num==0)
{
numpinyin(buffer,num);
printf("%s ",buffer);
}
else
{
for(i=0;i<3;i++)
{
if(getdigit(num,i)>0)
{
if(i==2&&getdigit(num,0)!=0&&getdigit(num,1)==0)
{
numpinyin(buffer,0);
printf("%s",buffer);
}
numpinyin(buffer,getdigit(num,i));
if(i<2)
printf("%s",buffer);
else
printf("%s",buffer);
if(i<2)
{
numpinyin(buffer,power(10,2-i));
printf("%s",buffer);
}
}
}
putchar(' ');
}
}
}
return0;
}

精心編寫代碼,實在不易,望採納,謝謝。。

Ⅱ c語言--將中文轉化為拼音

你比我利害,可以吧!!

Ⅲ 求一個C語言寫的漢字轉拼音程序

http://www.programbbs.com/doc/2302.htm

.

Ⅳ 如何用c語言將文件夾下的中文文件名改為用拼音命名

右擊,重命名

Ⅳ c 語言怎麼對中文字元進行拼音排序

ansi GB2312里一級漢字是按拼音排序的,襲橡搏其他的漢字按部首/筆劃排序
所以能按拼音排序的漢字只有3000多個,直接用strcmp()較拍祥就可以了
你提出的這幾個字都是一級字型檔里的字,所以用strcmp()就可以實現按拼音排序

但是如果你用的是Unicode,由於unicode里的漢字按筆劃順序排序,所如源以沒有辦法實現按拼音排序。

Ⅵ 求問c語言中怎麼把一個字元串中的拼音換成漢字 如輸入jin tian 輸出今 tian

如果是簡單的實現的話可以使用哈希表,這樣查找可能比較快一點,但是漢字拼音相同的很多,

例如建立兩個相關的數組:

charpinyin[100][50]={"jin","tian"};
charhanzi[100][50]={"今","天"};

然後將輸入的字與 pinyin表對比,找到index,然後對應輸出hanzi[index]

因為 C 語言沒有哈希表,需要自己實現,類似於上面的結構。

Ⅶ linux或mac os系統下 怎麼用C語言或c++ 將漢字轉化為拼音縮寫

不想模彎寫代碼了 給你一個參考

在很多軟體中,輸入拼音的首寫字母就可以快速定位到某個詞條。比如轎碼行,在鐵路售票軟體中,輸入: 「bj」就可以定位到「北京」。怎樣在自己的軟體中實現這個功能呢?問題的關鍵在於:對每個漢字必須能計算出它的拼音首字母。

GB2312漢字編碼方式中,一級漢字的3755個是按照拼音順序排列的。我們可以利用這個特徵,對常用漢字求拼音首字母。

GB2312編碼方案對每個漢字採用兩個位元組表示。第一個位元組為區號,第二個位元組為區中的偏移號。為了能與已有的ASCII編碼兼容(中西文混排),區號和偏移編號都從0xA1開始。

我們只要找到拼音a,b,c,...x,y,z 每個字母閉嘩所對應的GB2312編碼的第一個漢字,就可以定位所有一級漢字的拼音首字母了(不考慮多音字的情況)。下面這個表給出了前述信息。

a 啊 B0A1
b 芭 B0C5
c 擦 B2C1
d 搭 B4EE
e 蛾 B6EA
f 發 B7A2
g 噶 B8C1
h 哈 B9FE
j 擊 BBF7
k 喀 BFA6
l 垃 C0AC
m 媽 C2E8
n 拿 C4C3
o 哦 C5B6
p 啪 C5BE
q 期 C6DA
r 然 C8BB
s 撒 C8F6
t 塌 CBFA
w 挖 CDDA
x 昔 CEF4
y 壓 D1B9
z 匝 D4D1

Ⅷ 用C語言編寫 手機用拼音輸入法的實現

關於嵌入式設備輸入法(手機輸入法) C語言實現

目前我在調試一款設備,類似於手機,有0-9,*,#,確定,退出,上下左右這些鍵。
苦於沒有輸入法。

顯示漢字那一塊目前已搞定,我貼出來原理:
漢字由兩個機內碼組成qh,wh,
第一步:
qh-=0xa0; //機內碼轉成區位碼-0xa0
wh-=0xa0;

第二步:
定位字型檔裡面的字:
offset=(94*(qh-1)+(wh-1))*32; /* 定位字型檔的字 */

第三步:
顯示到屏上面16*16個點一個漢字
for(i=0;i<16;i++)
{
val16=((hzk16[i]<<8)&0xff00) + ((hzk16[i]>>8)&0xff);
for(j=0;j<16;j++)
{
if(val16 & 0x8000) p16[i*nDataWidth+j]=nColor&0xffff;
val16=val16<<1;
}
}

說了半天的顯示其實主題是輸入法,只要能鍵出機內碼就行。
問題的關鍵就在這里了,目前我才剛開始開發。希望喜歡的朋友一起交流。

網上找了些東西參考:
直接在Keil下模擬的T9拼音輸入法(完整版)
嵌入式系統中文輸入法的設計
這兩個東西也比較重要:
漢字編碼原理 文中講了漢字編碼的整下原理,一目瞭然。
點陣漢字顯示 文中講了點陣的漢字的顯示方法,配合上面的代碼理解。

16x16字型檔文件下載,注意右鍵另存為後面把.jpg的改成.bin即可.
用什麼問題可以多多交流。[email protected].或者QQ郡里

手機爆中文輸入法侵權糾紛 幾乎所有品牌捲入
信產部制定手機輸入法標准

附:剛移植了一個51單片機的拼音輸入法,主要就是一個索引表。還得做一些聯想等功能。源碼我共享在郡裡面了。

Ⅸ 如何寫一個輸入數字後輸出對應數字拼音的c語言程序

#include<stdio.h>
#define num 10 //設置你要輸入數字的長度
void main(void)
{
char a[num];
int i = 0;
printf("輸入數字:\t");
gets(a);
while(a[i] != '\0')
{
switch(a[i])
{
case '0':printf("零\n");break;
case '1':printf("一\n");break;
case '2':printf("二\n");break;
case '3':printf("三\n");break;
case '4':printf("四\n");break;
case '5':printf("五\n");break;
case '6':printf("六\n");break;
case '7':printf("七\n");break;
case '8':printf("八\n");break;
case '9':printf("九\n");break;
default:printf("錯誤\n");break;
}
i++;
}
printf("\n");
}

Ⅹ c語言把一個整數轉變成中文的念法

這是我以前寫的,把中文改成拼音就行了
http://hi..com/rankabc/item/d1dd64ff4c674aeba835a2a3