国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 巢湖市| 株洲市| 阳曲县| 绍兴市| 东乡族自治县| 富裕县| 龙海市| 广灵县| 南康市| 新竹市| 开封市| 罗甸县| 渝北区| 双江| 南木林县| 岳普湖县| 安达市| 武邑县| 寿宁县| 科技| 平阳县| 德钦县| 马关县| 合阳县| 黄浦区| 纳雍县| 蕲春县| 稷山县| 克什克腾旗| 罗平县| 平塘县| 乾安县| 信宜市| 凉山| 卢龙县| 凌海市| 射阳县| 泽库县| 京山县| 东城区| 南川市|