国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

如何轉(zhuǎn)換全角字符到半角字符?

2019-09-06 23:33:31
字體:
供稿:網(wǎng)友

                    我們知道,在windows中,中文和全角字符都占兩個(gè)字節(jié),并且使用了ascii chart 2 (codes 128?C255)。我們可以憑這一點(diǎn)來一個(gè)個(gè)檢測(cè)用戶輸入的是否是中文和全角字符。實(shí)際上,全角字符的第一個(gè)字節(jié)總是被置為163,而第二個(gè)字節(jié)則是相同半角字符碼加上128(不包括空格)。如半角a為65,則全角a則是163(第一個(gè)字節(jié))、193(第二個(gè)字節(jié),128+65)。而對(duì)于中文來講,它的第一個(gè)字節(jié)被置為大于163,(如'阿'為:176 162),我們可以在檢測(cè)到中文時(shí)不進(jìn)行轉(zhuǎn)換。
  以上僅為我個(gè)人試驗(yàn)所得,而我更是學(xué)習(xí)編程不到半月。如果有錯(cuò)誤或失漏,請(qǐng)大家不吝賜教。下面我給出一個(gè)例程供大家參考。


  新建窗體,在窗體上放置button1、edit1、edit2。

/*在edit1中輸入全角字符、中文、半角字符或混雜輸入。單擊button1,edit1中的文字顯示到edit2中并轉(zhuǎn)換了所有的全角字符。注意,程序沒有對(duì)特殊字符如255(按住alt再按小鍵盤的2、5、5輸入)等作出正確反應(yīng)。*/

void __fastcall tform1::button1click(tobject *sender)
{
/tint nlength=edit1->text.length();
/tif (nlength==0)
/t/treturn;
/tansistring str="";
/tchar *ctmp=new char[nlength+1];
/tstrpcopy(ctmp,edit1->text);
/tbyte c1,c2;
/tint i;
/tfor (i=0;i<nlength;i++)
/t{
/t/tc1=ctmp;
/t/tc2=ctmp[i+1];
/t/tif (c1==163)//判斷是否為全角字符
/t/t{

/t/t/tstr=str+ansistring((char)(c2-128));
/t/t/ti++;
/t/t/tcontinue;
/t/t }
/t/tif (c1>163)//判斷是否為文字
/t/t{

/t/t/tstr=str+ansistring((char)c1);
/t/t/tstr=str+ansistring((char)c2);
/t/t/ti++;
/t/t/tcontinue;
/t/t}
/t/tif ((c1==161) && (c2==161))//全角空格是個(gè)特例,另加處理
/t/t/t{
/t/t/t/tstr=str+" ";
/t/t/t/ti++;
/t/t/t/tcontinue;
/t/t/t}
/t/tstr=str+ ansistring(char(c1));
/t}
/tedit2->text=str;
/tdelete ctmp;ctmp=null;
} 

 以上代碼c++builder5.0/win98 se下編譯通過。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 宁陵县| 巫溪县| 阿克陶县| 云浮市| 铜川市| 宜宾市| 运城市| 桦川县| 图片| 高邮市| 尼玛县| 朝阳市| 萝北县| 庆安县| 桂东县| 尉氏县| 洛阳市| 北川| 家居| 淅川县| 灵寿县| 溆浦县| 灵石县| 襄樊市| 乌什县| 湖州市| 辰溪县| 孝昌县| 商河县| 余江县| 濮阳县| 邵阳县| 长沙市| 张家港市| 桓台县| 雷波县| 正蓝旗| 兴国县| 金乡县| 观塘区| 大兴区|