日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言怎么查找中文字符,C语言自学,汉字编码范围查询!

發布時間:2024/8/1 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言怎么查找中文字符,C语言自学,汉字编码范围查询! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本帖最后由 life_fox 于 2017-9-29 00:57 編輯

漢字編碼、單字節二進制查詢源碼

#include

#include

#include

#include

int main()

{

system("title 漢字編碼、單字節二進制查詢");

unsigned char ch[3]={0};

unsigned ch_2[6768][3]={0};

int ch_int[6768][2]={0};

int x,y;

int a=0;

//基本常見漢字范圍:0xB0A1(45217) - 0xF7FE(63486)

/*

45217是高8位和低8位二進制整合后轉換的十進制

45217的二進制: 1011 0000 1010 0001

高八位:1011 0000? ?? ???十進制: 176

低八位:1010 0001? ?? ???十進制: 161

63486的二進制: 1111 0111 1111 1110

高八位:1111 0111? ?? ???十進制: 247

低八位:1111 1110? ?? ???十進制: 254

基本常用全角符號編碼范圍:0xA1A1(41377) - 0xFEFE(65278)

這個范圍是包含了漢字、中文標點符號、日文、俄文、部首、序號、注音、拼音等等

就是手機輸入法中,單擊符號,所列出來的那些

還有一個范圍是0x8180(33152)-0xFEFE(65278)? ?? ? 這個范圍是包含了繁體字和一些非常見漢字??(? ?高8位248之后,低8位基本不超過160? ?)

*/

for(x=176;x<=247;x++)//高8位編碼最低是176最高247

{

for(y=161;y<=254;y++)//低8位編碼最低是161最高254,字節集[176,161]---[247,254]這是漢字編碼范圍

{

a++;

ch[0]=x;? ?? ???//高8位編碼

ch[1]=y;? ?? ???//低8位編碼

strcpy(ch_2[a-1],ch);? ?? ???//將2字節組賦值給集合用于保存

ch_int[a-1][0]=x;? ?? ?? ?? ?? ? //將 高8位編碼 保存

ch_int[a-1][1]=y;? ?? ?? ?? ?? ? //將 低8位編碼 保存

}

}

loop:system("cls");

printf("請輸入需要查詢的漢字:");

/*

scanf("%s",&ch);

本人的是不完整XP系統,無法輸入中文,故無法測試

*/

strcpy(ch,"陳");

char ch_g8[8],ch_d8[8],ch_jihe[8]={0};

for(x=0;x<6674;x++)

{

if((strcmp(ch,ch_2[x]))==0)

{

printf("查詢的漢字??:%s\n",ch_2[x]);

printf("高八位編碼??:%-11d低八位編碼:%d\n",ch_int[x][0],ch_int[x][1]);

itoa(ch_int[x][0],ch_g8,2);

printf("高八位二進制:%s? ?",ch_g8);//將高8位轉換為二進制

itoa(ch_int[x][1],ch_d8,2);

printf("低八位二進制:%s\n",ch_d8);//將低8位轉換為二進制

//將2個字節的二進制整合

char chuan[16]={0};

strcat(chuan,itoa(ch_int[x][0],ch_g8,2));

strcat(chuan,itoa(ch_int[x][1],ch_d8,2));

//整合后的二進制轉換成十進制

int i=0,b[16];

for(y=0;y<16;y++)//將0、1字符轉換成0、1整型

{

if(chuan[y]=='1')b[y]=1;

else if(chuan[y]=='0')b[y]=0;

}

for(y=0;y<16;y++)//將轉換后的整型二進制轉換成十進制

{

i=i+(b[15-y]*pow(2,y));

}

printf("字節集 編 碼:%d\n",i);

printf("字節集二進制:%s\n",chuan);

}

}

printf("是否繼續?Y/N:");

char c;

scanf("%s",&c);

if(c=='y' || c=='Y')goto loop;

else return 0;

}

總結

以上是生活随笔為你收集整理的c语言怎么查找中文字符,C语言自学,汉字编码范围查询!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。