1樓:匿名使用者
說明:函式名稱
int strunicode2gb(char *strsourcer, char *strdest,int n)
轉換unicde字串到gb碼,返回漢字數
輸入( unicode 源串,gb2312/ascii混合編碼串,unicode位元組數 必須是偶數!!!)
#include
const unsigned short int unicode_gb2312[2] =
; u_int16_t unicode2gbcode(u_int16_t iunicode)
if ((iunicode>=0x20&&iunicode<=0x5a)||(iunicode>=0x61&&iunicode<=0x7a))
return iunicode;
for (i=0,j=0,n=sizeof(unicode_gb2312)/sizeof(unicode_gb2312[0])-1;n>0;n>>=1,++j)
if (unicode_gb2312[i][0]0;n-=2,psrc+=2,++i,++pdest)
else if (tmphz>0x00&&tmphz<=0x7f)
else
} *pdest='\0';
return i;}
2樓:幻溪先生
void ascii2unicode(u8 *pu8filename)
}for(i=0;i0)}
怎樣用c語言實現漢字和ascii碼到unicode碼的轉換?
3樓:匿名使用者
可以用 libiconv ,gnu project,協議是 lgpl。
4樓:手機使用者
1、ascii碼
string s = "樑";
system.text.encoding gb2312 = system.text.encoding.getencoding("gb2312");
byte gb = gb2312.getbytes(s);
這時gb中有兩個數字193(11000001),186(10111010)
2、非ascii編碼
string s = "樑";
system.text.encoding gb2312 = system.text.encoding.getencoding("gb2312");
byte gb = gb2312.getbytes(s);
這時gb中有兩個數字193(11000001),186(10111010)
3、unicode
unicode當然是一個很大的集合,現在的規模可以容納100多萬個符號。每個符號的編碼都不一樣。c#中如果你想看看某個漢字的unicode編碼可以使用如下**:
string s = "樑";
byte unicode = encoding.unicode.getbytes(s);
這時unicode中有兩個數字129(10000001),104(1101000)
c# 中實現 ascii碼和 unicode 碼的轉換?
5樓:匿名使用者
1、ascii碼
string s = "樑";
system.text.encoding gb2312 = system.text.encoding.getencoding("gb2312");
byte gb = gb2312.getbytes(s);
這時gb中有兩個數字193(11000001),186(10111010)
2、非ascii編碼
string s = "樑";
system.text.encoding gb2312 = system.text.encoding.getencoding("gb2312");
byte gb = gb2312.getbytes(s);
這時gb中有兩個數字193(11000001),186(10111010)
3、unicode
unicode當然是一個很大的集合,現在的規模可以容納100多萬個符號。每個符號的編碼都不一樣。c#中如果你想看看某個漢字的unicode編碼可以使用如下**:
string s = "樑";
byte unicode = encoding.unicode.getbytes(s);
這時unicode中有兩個數字129(10000001),104(1101000)
c語言 ascii 轉換為unicode(十進) 30
6樓:匿名使用者
我不是很懂你的意思,但是就我個人的想法,你應該想實現這樣的功能吧:
#include
#include
#include
#include
void main()
;setlocale(lc_all,"chs");
mbstowcs(out , p , strlen(p));
puts(out);}
7樓:匿名使用者
這個可以,
你試試。
#include
#include
#include
#include
int main()
;setlocale( lc_all , "chs" );
mbstowcs(out , p , strlen(p) );
printf("%s" , out );
return 0;}
請問如何用c語言實現漢字和unicode編碼的轉換 求程式
8樓:
字轉換:wctomb、mbtowc,wc 指 wide charactor,mb 指 multi-byte。
字串轉換:wcstombs、mbstowcs,wcs 和 mbs 的 s 指 string。
這 4 個函式是 c 標準函式庫函式中的。如果只是在 windows 平臺下程式設計,可直接呼叫 windows api 函式 widechartomultibyte 和 multibytetowidechar 實現。但是如果呼叫標準庫函式的話,在 linux 下也是有效的。
呼叫標準庫函式,首先必須包含 locale.h 並呼叫 setlocale(lc_all, "") 後才能正確轉換。windows 下的 multi-byte 是 ansi 編碼的,wide charactor 是 unicode (utf-16) 編碼,而 linux 下的 multi-byte 是 utf-8 編碼的,wide charactor 是 unicode (utf-32) 編碼。
#include
#include
#include
int main(void)
;setlocale(lc_all, "");
wcstombs(str, wstr, sizeof(str)/sizeof(char));
printf("%s", str);
return 0;}
9樓:
學會使用libiconv庫吧
c語言字元與ascii碼的轉換
10樓:會飛的小兔子
#include
voidmain()
unsignedchara;
printf("enterchar:");
scanf("%c",&a);
printf("ascii=%d",a);//強制轉化為ascii碼擴充套件資料c語言ascii編碼的**
ascii碼
一個二進位制位(bit)有0、1兩種狀態,一個位元組(byte)有8個二進位制位,有256種狀態,每種狀態對應一個符號,就是256個符號,從00000000到11111111。美國製定了一套英文字元與二進位制位的對應關係,稱為ascii碼,沿用至今。
ascii碼規定了128個英文字元與二進位制的對應關係,佔用一個位元組(實際上只佔用了一個位元組的後面7位,最前面1位統一規定為0)。例如,字母a的的ascii碼為01100001,那麼你暫時可以理解為字母a儲存到記憶體之前會被轉換為01100001,讀取時遇到01100001也會轉換為a。
11樓:俞曦濮陽德澤
//函式
名:chartohex()
//功能描述:把ascii字元轉換為16進位制
//函式說明:
//呼叫函式:
//全域性變數:
//輸入:ascii字元
//返回:16進位制
unsigned
char
chartohex(unsigned
char
bhex)
//函式
名:hextochar()
//功能描述:把16進位制轉換為ascii字元
//函式說明:
//呼叫函式:
//全域性變數:
//輸入:16進位制
//返回:ascii字元
unsigned
char
hextochar(unsigned
char
bchar){
if((bchar>=0x30)&&(bchar<=0x39))
bchar
-=0x30;
else
if((bchar>=0x41)&&(bchar<=0x46))//大寫字母
bchar
-=0x37;
else
if((bchar>=0x61)&&(bchar<=0x66))//小寫字母
bchar
-=0x57;
else
bchar
=0xff;
return
bchar;
12樓:
ascii字元值範圍是0x00到0x7f。因為有不可見和鍵盤不好拍的字元。所以你可用整型數輸入。
unsigned char a[100],b[100];
unsigned char x,y,z;
scanf("%d",&a[i]);
if (a[i] > 0x7f || a[i] < 0) 重輸;
加減運算 就用算數表示式。例如
y = a[1]+a[2];
b[2] = a[1] + a[2] - a[3];
unsigned char 就是8bit無符號整數。
加減運算後很可能超界,即大於0x7f或小於0。
加減運算後的字元很可能是不可列印字元,或「看不見」的字元。
所以你的題目有問題。
13樓:匿名使用者
你問得太模糊了,你是讓我口頭告訴你怎麼做,還是用c語言編一個程式給你呢
c語言用函式實現用冒泡法對整數升序和降序排列麻煩寫全些
include void sort1 int a,int n void sort2 int a,int n int i,j,t for i 0 i main 降序 include define len 10 void bubble sort desc int arr,int len int main...
C 中pow函式,C 中pow(x,y)函式怎麼用?最好給舉個例子
2型別是整型,0.5屬於浮點數,而你的函式宣告裡面第一個引數是浮點數,第二個引數是整型的,int轉float double可以隱式轉換,編譯器允許這種轉換,但是float double不能隱式轉換成int,這樣可能會造成資料丟失,編譯器不允許,除非你強制轉換 在vc 6.0中原型為double po...
用c語言怎麼連線資料庫呢,用C語言怎麼實現與資料庫的連線
25.2.2.c api函式概述 這裡歸納了c api可使用的函式,並在下一節詳細介紹了它們。請參見25.2.3節,c api函式描述 函式 描述 mysql affected rows 返回上次update delete或insert查詢更改 刪除 插入的行數。mysql autocommit 切...