當前位置:首頁 » 編程語言 » c語言輸出漢字大全
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言輸出漢字大全

發布時間: 2022-05-04 10:30:52

1. 如何在c語言中輸出中文!

在C程序中顯示漢字<br>
<br>
<br>
<br>在許多C程序設計中,要用到漢字進行提示或人機交互,而現行的Turbo
C集成開發環境不是漢化的,如何編制能顯示漢字的C程序呢?<br>
<br>
下面的方法可以幫你在西文環境下顯示漢字。這種方法是調用中文漢字型檔進行漢字顯示。國家標准規定:漢字型檔分94個區,每個區有94個漢字(以位作區別),每個漢字在漢字型檔中有確定的區和位編號,這就是漢字的區位碼。每個漢字在庫中是以點陣字模形式存儲的,一般採用16×16點陣(32位元組)、24×24點陣(72位元組),每個點用一個二進制位(0或1)表示,對應在屏幕上顯示出來,就是相應的漢字。<br>
<br>
由於在中文環境下,輸入的是漢字的內碼,我們必須將之轉換成區位碼,算出偏移量,從字型檔中找到對應的漢字,將其字模顯示即可。<br>
<br>
內碼轉換成區位碼方法如下:<br>
<br>
qh=c1-0xa0
wh=c2-0xa0<br>
<br>
其區位碼就是:<br>
<br>
qw=qh*0xff+wh<br>
<br>
該漢字在字型檔中離起點的位置是:<br>
<br>
<br>offset=(94*(qh-1)+(wh-1))*32L<br>
<br>
程序例:<br>
<br>
#include
〈graphics.h〉<br>
<br>
#include
〈stdio.h〉<br>
<br>
#include
〈fcntl.h〉<br>
<br>
#include
〈io.h〉<br>
<br>
#include
〈stdlib.h〉<br>
<br>
#include
〈conio.h〉<br>
<br>
#define
ROW
1<br>
//縱坐標放大倍數<br>
<br>
#define
COL
2<br>
//橫坐標放大倍數<br>
<br>
void
main()<br>
<br>
{<br>
<br>
int
x,y;<br>
<br>
char
*s=〃漢字顯示程序〃;<br>
<br>
FILE
*fp;<br>
<br>
char
buffer[32];<br>//buffer用來存儲一個漢字<br>
<br>
register
m,n,i,j,k;<br>
<br>
unsigned
char
qh,wh;<br>
<br>
unsigned
long
offset;<br>
<br>
int
gd=DETECT,gm;<br>//圖形屏幕初始化<br>
<br>
initgraph(&gd,&gm,〃
〃);<br>
<br>
if
((fp=fopen(〃hzk16〃,〃rb〃))==NULL)<br>
<br>
//打開漢字型檔,該字型檔可以在ucdos中找到<br>
<br>
<br>{
printf(〃Can't
open
haz16,Please
add
it〃);<br>
<br>
getch();
closegraph();
exit(0);<br>
<br>
<br>}
<br>
<br>
x=20;
y=100;
//顯示位置設置<br>
<br>
while(*s)<br>
<br>
<br>{
qh=*(s)-0xa0;
//漢字區位碼<br>
<br>
<br>wh=*(s+1)-0xa0;<br>
<br>
<br>offset=(94*(qh-1)+(wh-1))*32L;
//計算該漢字在字型檔中偏移量<br>
<br>
<br>fseek(fp,offset,SEEK_SET);<br>
<br>
<br>fread(buffer,32,1,fp);
//取出漢字32位元組的點陣字模存入buffer中(一個漢字)<br>
<br>
<br>for
(i=0;i〈16;i++)
//將32位位元組的點陣按位在屏幕上列印出來(1:列印,0:不列印),顯示漢字<br>
<br>
for(n=0;n〈ROW;n++)<br>
<br>
for(j=0;j〈2;j++)<br>
<br>
<br>for(k=0;k〈8;k++)<br>
<br>
<br>
for(m=0;m〈COL;m++)<br>
<br>
if
(((buffer[i*2+j]〉〉(7-k))&0x1)!=NULL)<br>
<br>
putpixel(x+8*j*COL+k*COL+m,y+i*ROW+n,GREEN);<br>
<br>
s+=2;
//因為一個漢字內碼佔用兩個位元組,所以s必須加2<br>
<br>
<br>x+=30;<br>
<br>
}<br>
<br>
getch();<br>
<br>
closegraph();<br>
<br>
}<br>
<br>
上述程序在Turbo
C
2.0編譯系統下運行成功,它可以將漢字放大顯示,讀者可以將它改成函數用在您的程序中顯示漢字。

2. c語言怎樣才能輸出中文(最簡單的方法)

起初,C語言沒有官方標准。1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。布萊恩·柯林漢(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本書,名叫《The C Programming Language》。

這本書被 C語言開發者們稱為K&R,很多年來被當作 C語言的非正式的標准說明。人們稱這個版本的 C語言為K&R C。

K&R C主要介紹了以下特色:

結構體(struct)類型

長整數(long int)類型

無符號整數(unsigned int)類型

把運算符=+和=-改為+=和-=。因為=+和=-會使得編譯器不知道使用者要處理i = -10還是i =- 10,使得處理上產生混淆。

即使在後來ANSI C標准被提出的許多年後,K&R C仍然是許多編譯器的最 准要求,許多老舊的編譯器仍然運行K&R C的標准。

1970到80年代,C語言被廣泛應用,從大型主機到小型微機,也衍生了C語言的很多不同版本。

1983年,美國國家標准協會(ANSI)成立了一個委員會X3J11,來制定 C語言標准。

1989年,美國國家標准協會(ANSI)通過了C語言標准,被稱為ANSI X3.159-1989 "Programming Language C"。因為這個標準是1989年通過的,所以一般簡稱C89標准。有些人也簡稱ANSI C,因為這個標準是美國國家標准協會(ANSI)發布的。

1990年,國際標准化組織(ISO)和國際電工委員會(IEC)把C89標準定為C語言的國際標准,命名為ISO/IEC 9899:1990 - Programming languages -- C 。

因為此標準是在1990年發布的,所以有些人把簡稱作C90標准。不過大多數人依然稱之為C89標准,因為此標准與ANSI C89標准完全等同。

1994年,國際標准化組織(ISO)和國際電工委員會(IEC)發布了C89標准修訂版,名叫ISO/IEC 9899:1990/Cor 1:1994,有些人簡稱為C94標准。

1995年,國際標准化組織(ISO)和國際電工委員會(IEC)再次發布了C89標准修訂版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity [7] ,有些人簡稱為C95標准。

3. C語言中如何用編碼輸出中文字元

計算機用兩個位元組來表示一個漢字,「我」在內存里就是這樣存放的:CE
D2。CE是str[0]的內容,D2是str[1]的內容。第一次循環輸出str[0],但是這個字元在ASCII字元集里代表這樣一個東西Î(不知道在這兒能不能正常顯示……),但是Windows的命令提示符程序讀取到這里就會自動使用寬字元集,也就是說,它已經准備好讀取下一個字元,然後把他們當成一個字元顯示出來。於是就出現了那個漢字。
#include
<stdio.h>
int
main()
{
printf("%c%c",(char)0xce,(char)0xd2);
}

4. C語言如何輸入一段特定的漢字之後輸出文字

摘要 #include

5. c語言編程如何輸出漢字

Windows XP與DOS是完全不同的兩種內核。Windows XP幾乎把DOS完全摒棄了。
而TC則是DOS時代的遺留物。

所以用TC編出來的程序在WINDOWS XP中運行時,許可權是非常有限的。特別是對屏幕的操作。所以畫點陣的方法是行不通的(更何況這個方法編出的程序也是很復雜的)。如果你用的是98以前的操作系統的話,用UCDOS就可以實現,但在XP中UCDOS已經不能用了。

如果想要用C語言編程時輸出漢字,可以用以下幾種方法:
1.最值得推薦的一種。摒棄TC,改用為WINDOWS編程設計的Visual C++,或者C++ Builder,lcc等。
用這幾種工具的話,在代碼中可以直接輸入漢字。編譯出來的是32位windows程序不存在兼容問題。

2.改用98以前的操作系統。
3.裝個虛擬機,在虛擬機中裝上DOS或者98。當然還要裝上UCDOS。然後,在其中用TC寫程序。

6. c語言輸入輸出漢字

我推薦用
數組

我不太清楚
漢字
的編碼
反正漢字不超過10W個
但可以肯定是一個漢字對應一個類似與ascii的編碼
假設是100000-200000之間的int類型
ch
先定義
int
code[100000]={0};
讀取一個ch(int)就在
code[ch-100000]+=1;
最後遍歷code數組就OK

千萬別用
鏈表
什麼的,小文件還好說
但文件大了,讀取N慢,不幸你試試

7. 怎麼在C語言里用printf輸出一個中文

一般情況下,應用程序採用的字元集為gbk,
gb2312,該字元集中一個漢字由兩個位元組組成,所以在普通的C語言中,漢字是按字元串進行存儲和輸出的。(另:還有utf8字元集,一個漢字由三個位元組組成,詳情可查閱utf8字元集)
char
*
p
=
"張三";
輸出多個中文:
printf("%s\n",
p
);
//按字元串輸出完整的數據
輸出一個中文:
printf("%c%c",
*p,
*p+1
);
//按字元輸出,同時輸出兩個位元組
輸出一個中文串的長度:
printf("sizeof(p)=%d\n",
sizeof(p)
);
//p變數是指針,所以,這里輸出的是指針的寬度,一般32位機是4
printf("sizeof(張)=%d\n",
sizeof("張")
)
;
// "張"是個常量字元串,sizeof是得到其占內存的大小,字元串都有一個結束符,一個」張「字占兩位元組,加上字元串結束\0,所以,佔三個位元組的內存空間
printf("length
of
(張)=
%d\n",
strlen("張")
);
//strlen得到的是字元串有效字元長度(位元組數),不包括結束符,所以,長度是兩個位元組

8. 用C語言。怎麼將所有漢字全部輸出

在C語言中,我的想法是由於漢字的補碼最高位總是1,所以在內存中如果一個字元
是一個負值,那麼我就連續輸出兩個位元組把漢字輸出。思想轉換成代碼如下:
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *p="你好,中國!";
for(size_t i=0;i<strlen(p);++i)
if(p[i]<0)
printf("%c%c",p[i],p[++i]);
return 0;
}

9. 請問在C語言中如何輸出漢字

1、引入標准輸入輸出庫:sdtio.h。

2、定義字元串形式的漢字(採用字元數組存儲)。

3、使用printf函數,或者puts函數輸出字元串形式的漢字。

例如:

#include<stdio.h>
intmain()
{
charstr[]="輸出漢字";
printf("%s ",str);
puts(str);
return0;
}
/*
運行結果:
輸出漢字
輸出漢字
*/

10. 用c語言輸出漢字

你好!

你看看編譯的結果和程序吧

#include<stdio.h>
intmain()
{
chara[3]="我",b[3]="們";
printf("%s%s ",a,b);
return0;
}