C語言輔導(dǎo)-在C程序中顯示漢字_第1頁
C語言輔導(dǎo)-在C程序中顯示漢字_第2頁
C語言輔導(dǎo)-在C程序中顯示漢字_第3頁
C語言輔導(dǎo)-在C程序中顯示漢字_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

C語言輔導(dǎo):在C程序中顯示漢字下面的方法可以幫你在西文環(huán)境下顯示漢字。這種方法是調(diào)用中文漢字庫進(jìn)展?jié)h字顯示。國家標(biāo)準(zhǔn)規(guī)定:漢字庫分94個區(qū),每個區(qū)有94個漢字(以位作區(qū)分),每個漢字在漢字庫中有確定的區(qū)和位編號,這就是漢字的區(qū)位碼。每個漢字在庫中是以點(diǎn)陣字模形式存儲的,一般采納16×16點(diǎn)陣(32字節(jié))、24×24點(diǎn)陣(72字節(jié)),每個點(diǎn)用一個二進(jìn)制位(0或1)表示,對應(yīng)在屏幕上顯示出來,就是相應(yīng)的漢字。

由于在中文環(huán)境下,輸入的是漢字的內(nèi)碼,我們必需將之轉(zhuǎn)換成區(qū)位碼,算出偏移量,從字庫中找到對應(yīng)的漢字,將其字模顯示即可。

內(nèi)碼轉(zhuǎn)換成區(qū)位碼方法如下:

qh=c1-0xa0wh=c2-0xa0

其區(qū)位碼就是:

qw=qh*0xff+wh

該漢字在字庫中離起點(diǎn)的位置是:

offset=(94*(qh-1)+(wh-1))*32L

程序例:

#include〈graphics.h〉

#include〈stdio.h〉

#include〈fcntl.h〉

#include〈io.h〉

#include〈stdlib.h〉

#include〈conio.h〉

#defineROW1//縱坐標(biāo)放大倍數(shù)

#defineCOL2//橫坐標(biāo)放大倍數(shù)

voidmain()

{

intx,y;

char*s=″漢字顯示程序″;

FILE*fp;

charbuffer[32];//buffer用來存儲一個漢字

registerm,n,i,j,k;

unsignedcharqh,wh;

unsignedlongoffset;

intgd=DETECT,gm;//圖形屏幕初始化

initgraph(&gd,&gm,″″);

if((fp=fopen(″hzk16″,″rb″))==NULL)//翻開漢字庫,該字庫可以在ucdos中找到

{printf(″Can’topenhaz16,Pleaseaddit″);

getch();closegraph();exit(0);

}

x=20;y=100;//顯示位置設(shè)置

while(*s)

{qh=*(s)-0xa0;//漢字區(qū)位碼

wh=*(s+1)-0xa0;

offset=(94*(qh-1)+(wh-1))*32L;//計算該漢字在字庫中偏移量

fseek(fp,offset,SEEK_SET);

fread(buffer,32,1,fp);//取出漢字32字節(jié)的點(diǎn)陣字模存入buffer中(一個漢字)

for(i=0;i〈16;i++)//將32位字節(jié)的點(diǎn)陣按位在屏幕上打印出來(1:打印,0:不打印),顯示漢字

for(n=0;n〈ROW;n++)

for(j=0;j〈2;j++)

for(k=0;k〈8;k++)

for(m=0;m〈COL;m++)

if(((buffer[i*2+j]〉〉(7-k))&0x1)!=NULL)

putpixel(x+8*j*COL+k*COL+m,y+i*ROW+n,GREEN);

s+=2;//由于一個漢字內(nèi)碼占用兩個字節(jié),所以s必需加2

x+=30;

}

getch();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論