漢字首字母

2021-07-30 06:43:44 字數 1360 閱讀 3864

在很多軟體中,輸入拼音的首寫字母就可以快速定位到某個詞條。比如,在鐵路售票軟體中,輸入: 「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

主要是漢字的編碼問題,做了這道題也對漢字編碼多了一些理解,只需判斷輸入的漢字是否在兩個漢字區間內,然後輸出對應的首字母。用編碼寫的,過程麻煩一些,可以直接用strcmp來判斷就行了,還需要注意最後乙個字母z需要單獨判斷

#include#includeusing namespace std;

int main()

; char str[1000]=;

int n,i,j;

scanf("%d",&n);

char str1[1000];

while(n--)

printf("\n");

} return 0;

}

取漢字首字母

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...

mysql擷取漢字首字母

刪除存在的函式 drop function if exists fristpinyin 建立函式 delimiter create function firstpinyin p name varchar 255 returns varchar 255 charset utf8 determinist...