在很多軟體中,輸入拼音的首寫字母就可以快速定位到某個詞條。比如,在鐵路售票軟體中,輸入: 「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行,每行內容為使用者輸入的對應行的漢字的拼音首字母。
字母間不留空格,全部使用大寫字母。
例如:使用者輸入:
大家愛科學
北京天安門廣場
軟體大賽
則程式輸出:
djakx
bjtamgc
rjds
思路:這個題目不是很好想也是,任何乙個漢字的拼音都會在兩個字母之間比如ba,他應該在b和
c之間我們應該輸出
b,我們可以先判斷這個數字大於哪乙個數字,最後講這個數字的大寫字母輸出即可
說實話比較粗糙的一道題,按照題目所給的資訊進行編寫,大多數是常見的漢字可以正確識別的,但也有些存在一些問題,我也突然想到了多音字的問題,到底該怎麼輸出比較好,如何正確輸出多音字當前情況的正確讀音。
漢字首字母
在很多軟體中,輸入拼音的首寫字母就可以快速定位到某個詞條。比如,在鐵路售票軟體中,輸入 bj 就可以定位到 北京 怎樣在自己的軟體中實現這個功能呢?問題的關鍵在於 對每個漢字必須能計算出它的拼音首字母。gb2312漢字編碼方式中,一級漢字的3755個是按照拼音順序排列的。我們可以利用這個特徵,對常用...
取漢字首字母
public function hz2py byval hz as string as string dim sarr as byte system.text.encoding.default.getbytes hz dim len as integer sarr.length if len 1 t...
提取漢字首字母
using system using system.collections.generic using system.text namespace stringoption return mystr 把提取的字母變成大寫 需要轉換的字串 轉換結果 public static string getlo...