概要
指定した全角文字列を半角文字列に変換する。
コマンドラインで動作します。
使用方法
zen2han 全角文字列
コマンドを実行すると半角文字列が表示されます。
実行例
zen2han "!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}"
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}
ソースコード
UNICODEに対応し、32bit/64bit対応です。
zen2han関数は引数のUNICODE文字列を半角のUNICODE文字列に変換します。
変換対象はUNICODEで文字コードFF01~FF5D(上記の実行例参照)と全角スペースで変換後0021~007Dと半角スペースになります。
上記のコードは縦書き用の文字コードに該当します。
#include <windows.h>
#include <stdio.h>
#include <locale.h>
#include <tchar.h>
TCHAR* zen2han(TCHAR* s){
TCHAR* p=s;
while(*p){
if(0xff01<=*p && *p<=0xff5d){
*p-=0xff00-0x20;
}else if(*p==_TEXT(' '))
*p=_T(' ');
++p;
}
return s;
}
void _tmain(int argc,TCHAR** argv){
_tsetlocale(LC_ALL,_TEXT(""));
zen2han(argv[1]);
_putts(argv[1]);
}
ソース・実行ファイル