程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 全角和半角相互轉換(C語言實現)

全角和半角相互轉換(C語言實現)

編輯:關於C語言

目前,我們接觸的漢字編碼主要包括GBK和GB2312。其中,GB2312又稱國標碼,它是一個簡化字的編碼規范,也包括其他的符號、字母、日文假名等,共7445個圖形字符,其中漢字占6763個。我們平時說6768個漢字,實際上裡邊有5個編碼為空白,所以總共有6763個漢字。GB2312規定“對任意一個圖形字符都采用兩個字節表示,每個字節均采用七位編碼表示”,習慣上稱第一個字節為“高字節”,第二個字節為“低字節”。GB2312中漢字的編碼范圍為,第一字節0xB0-0xF7(對應十進制為176-247),第二個字節0xA0-0xFE(對應十進制為160-254)。而GBK是GB2312的擴展,是向上兼容的,GB2312中的漢字的編碼與GBK中漢字的相同,只不過GBK中還包含繁體字的編碼。GBK中每個漢字仍然占用兩個字節,第一個字節的范圍是0x81-0xFE(即129-254),第二個字節的范圍是0x40-0xFE(即64-254)。GBK中有碼位23940個,包含漢字21003個。因此,下面的代碼也是在使用GB2312或GBK編碼的環境下測試通過。

 
  sbc_to_dbc( *sbc,  *      (; *sbc; ++          ((*sbc & ) ==  && (*(sbc + ) & ) == )        
              *dbc++ =              ++           ((*sbc & ) ==  && (*(sbc + ) & ) >=  && (*(sbc + ) & ) <= )    
             *dbc++ = *++sbc -          
              (*sbc < )    
                 *dbc++ = *sbc++             *dbc++ = *       *dbc =   
 
  dbc_to_sbc( *dbc,  *      (; *dbc; ++          ((*dbc & ) == )    
              *sbc++ =              *sbc++ =            ((*dbc & ) >=  && (*dbc & ) <=               *sbc++ =              *sbc++ = *dbc +           
              (*dbc < )    
                 *sbc++ = *dbc++             *sbc++ = *       *sbc =  }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved