編程割漢字
Ⅰ C語言編程中怎麼輸入漢字
一個漢字實際上是用一個字元數組中的連續兩個元素儲存的
例如:
char s[2];
scanf("%s",s); ///1、此處不加& 2、此處可用gets(s);
for(int i=0;i<2;++i)
printf("%c",s[i]);
這樣可以完整輸入輸出一個漢字。
Ⅱ C語言編程解決漢字點陣的提取與顯示
/***圖形模式下的漢字顯示**/
/***圖形模式下的漢字顯示**/
/***圖形模式下的漢字顯示**/
/***圖形模式下的漢字顯示**/
/***圖形模式下的漢字顯示**/
/***圖形模式下的漢字顯示**/
#include<graphics.h>
#include<stdio.h>
void hanzi(int x,int y,char *s,int colour) /* x,y為漢字坐標,s為字元串,colour為顏色值*/
{
FILE *fp;
char buffer[32];
register i,j,k;
unsigned char qh,wh; /*區位碼*/
unsigned long location; /*漢字在字型檔中的位置*/
if((fp=fopen("hzk16","rb"))==NULL)
{
printf("Can't open hzk16!");
getch();
exit(0);
}
while(*s)
{
qh=*s-0xa0;
wh=*(s+1)-0xa0;
location=(94*(qh-1)+(wh-1))*32L;
fseek(fp,location,SEEK_SET);
fread(buffer,32,1,fp);
for (i=0;i<16;i++)
for(j=0;j<2;j++)
for(k=0;k<8;k++)
if(((buffer[i*2+j]>>(7-k))&0x1)!=NULL)
putpixel(x+8*j+k,y+i,colour);
s+=2;
x+=16; /*漢字間距*/
}
fclose(fp);
}
main()
{
int graphdriver=VGA;
int graphmode=VGAHI;
initgraph(&graphdriver,&graphmode,"");
hanzi(110,110,"顯示漢字的例子,不需要漢字系統。",2);
getch();
closegraph();
}
Ⅲ java編程 數字轉換成漢字
我自己寫的,匆忙寫的。我有時間再改進改進。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Stack;
/*
* 本程序
*/
public class Transfer {
public Stack<Integer> transfer(int n){
Stack<Integer> st = new Stack<Integer>();
int division = 0; //余數
while(n>=10){
division = n%10;
st.push(division);
n = n/10;
}
st.push(n); //將最高位壓棧
return st;
}
public static void main(String[]args){
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String in = "";
try {
in = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
int n = 0;
try{
n = Integer.parseInt(in);
} catch(NumberFormatException e){
e.printStackTrace();
}
Transfer tf = new Transfer();
Stack<Integer> s = tf.transfer(n);
/*
while(!s.empty()){
System.out.print(s.pop()); //測試語句
}
*/
HashMap<Integer, String> hp1 = new HashMap<Integer, String>(); //第一個映射表
hp1.put(0, "零"); //根據所在位的數值與中文對應
hp1.put(1, "一");
hp1.put(2, "二");
hp1.put(3, "三");
hp1.put(4, "四");
hp1.put(5, "五");
hp1.put(6, "六");
hp1.put(7, "七");
hp1.put(8, "八");
hp1.put(9, "九");
HashMap<Integer, String> hp2 = new HashMap<Integer, String>(); //第二個映射表
hp2.put(2, "十"); //根據所在位數,與中文對應
hp2.put(3, "百");
hp2.put(4, "千");
hp2.put(5, "萬");
hp2.put(6, "十萬");
hp2.put(7, "百萬");
hp2.put(8, "千萬");
hp2.put(9, "億");
//System.out.println(s.size());
String out = "";
while(!s.isEmpty()){
int temp = s.pop();
if(s.size()==0){
if(temp !=0){
out = out + hp1.get(temp);
}
}
else{
if(temp==0){
out = out + hp1.get(temp);
}
else{
out = out + hp1.get(temp) + hp2.get(s.size()+1);
}
}
}
System.out.println(out);
}
}
對於如2008之類的數,輸出的是二千零零八,還需要加以判斷,我再去處理下。
還有涉及萬以上的數,比如
123456
輸出的是一十萬二萬三千四百五十六,也必須增加判斷。
Ⅳ 編程語言為什麼是英文,而不是漢字
因為最初的編程語言是英語。
用漢字編程也不是不行,現在也有一個編程平台,就是用漢字編程。但用漢字編程遠不如用英文編程方便。中文博大精深,除了正式場合外,一般很少有人會嚴格按照語法來說話,很多時候都會省略主語、還會倒裝,還有很多方言、多音字,甚至語調語氣的不同也會造成意思不同。
讓電腦搞明白這中間的區別是很不容易的,一個漢字占兩個字元,a只需要到一個字母就能出來,而一個漢字就要打兩三個位元組。英文字母連上大小寫一共不過52個字母,而中文漢字是以萬計的,這么多文字的存儲也是一個很大的問題。
所以,從速度和空間上來說,用中文編程不如英文編程占優勢。此外,中文的一個詞語在英文中往往對應了多個單詞,而這些單詞又有獨特的語境,所以用英文來表達也會更簡便一些。
(4)編程割漢字擴展閱讀
中文編程語言
1、安全性自主研發的編譯器,可保障國家安全,配合國產CPU和OS,實現全面的硬體、軟體安全。
2、國際化多語種版本中語言可互相轉化。用漢語編程只是實現了母語化的第一步,反之漢語為國際化交流帶來了不方便。應該提供機制,可以將漢語關鍵字自動轉換為其他語言,實現交流合作。
3、融合性與其它語言互融互通,通過學習漢語編程從而可繼續學習其他編程語言。
Ⅳ 電腦為什麼不能用漢字編程呢
其實有漢語編程的,但是但是並不實際.
編程的語言知識一種代碼,最終還是轉成2進制,所以理論上用什麼語言編程都是一樣的.
問題在於,編程語言要有嚴格的規定,並且不能重復.
對此,英文比中文更有優勢.
其一,中國人講中文,都有嚴格按語法來說嗎,中文有倒裝,省略,但是這些,電腦是看不懂的.
其二,漢字太多,多音字也很多,用命令的時候不能很快.
其三,參數問題,幾乎通用的參數都是字母加字元,用中文,畫蛇添足了.
其四,一個漢字佔用二個字元,這樣寫的程序顯得臃腫,並且影響編輯.