半角全角判定
全角半角判定 : 幻惑郷
素晴らしい研究。
ちょいと手直ししてから、現在組んでるライブラリに組み込ませてもらった。
半角全角判定俺バージョン(define以下game以上)
mov %0,100 numalias is_zen_result,%0:inc %0 numalias is_zen_target,%0:inc %0 numalias is_zen_cmp,%0:inc %0 defsub is_zenkaku defsub is_hankaku defsub letter_len
半角全角判定俺バージョン(game以下start以上)
;================== ; is_zenkaku ;================== ; 文字列を与え、その文字列の先頭の文字が全角かどうか判定する。 ; 第一引数:結果を受け取る数値変数 ; 第二引数:判定対象の文字列(変数) ; 結果は、0が半角、1が全角 ; 依存:なし *is_zenkaku getparam i%is_zen_result,$is_zen_target cmp %is_zen_cmp,$is_zen_target,"、" if %is_zen_cmp<0 mov %%is_zen_result,0:return cmp %is_zen_cmp,$is_zen_target,"。" if %is_zen_cmp<0 mov %%is_zen_result,1:return cmp %is_zen_cmp,$is_zen_target,"゚" if %is_zen_cmp>0 mov %%is_zen_result,1:return mov %%is_zen_result,0:return ;================== ; is_hankaku ;================== ; 文字列を与え、その文字列の先頭の文字が半角かどうか判定する。 ; 第一引数:結果を受け取る数値変数 ; 第二引数:判定対象の文字列(変数) ; 結果は、0が全角、1が半角 ; 依存:is_zenkaku *is_hankaku getparam i%is_zen_result,$is_zen_target is_zenkaku %%is_zen_result,$is_zen_target if %%is_zen_result=0 mov %%is_zen_result,1:return mov %%is_zen_result,0:return ;================== ; letter_len ;================== ; 文字列を与え、その文字列の先頭の文字が、1バイトか2バイトかを判定する。 ; 第一引数:結果を受け取る数値変数 ; 第二引数:判定対象の文字列(変数) ; 結果は、1が半角、2が全角 ; 依存:is_zenkaku *letter_len getparam i%is_zen_result,$is_zen_target is_zenkaku %%is_zen_result,$is_zen_target inc %%is_zen_result return