在很多軟件中,輸入拼音的首寫字母就可以快速定位到某個詞條。比如,在鐵路售票軟件中,輸入: “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
【輸入、輸出格式要求】
用戶先輸入一個整數n (n<100),表示接下來將有n行文本。接著輸入n行中文串(每個串不超過50個漢字)。
程序則輸出n行,每行內容為用戶輸入的對應行的漢字的拼音首字母。
字母間不留空格,全部使用大寫字母。
例如:
用戶輸入:
3
大家愛科學
北京天安門廣場
軟件大賽
則程序輸出:
DJAKX
BJTAMGC
RJDS
結題思路:
C語言中的一個漢字占兩個字節(兩個char),我們只需把這兩個字節對應的int型數字算出來,然后到編碼表里去比較即可。計算該數字時要用到移位,與,或等位運算操作。
代碼如下:
















































































