SJIS文字列中のバックスラッシュ(円マーク)の処理


概要

本来、プログラムを書く場合は、メッセージなどのテキストデータを別ファイルとして管理し、多言語化やインターフェースの変更を簡単に行えるようにするべきです。が、実際のところ、完全にデータを分離することはかなり面倒ですし、実行時にあまり多くのファイルをアクセスすることはトラブルの元にもなるため、簡単なプログラムの場合、ソース中に文字列を埋め込むことはよくあることです。英語のメッセージなら問題はないのですが、日本で主流のSJIS文字列は、OSやコンパイラによっては、文字列中のバックスラッシュ(日本では¥マーク)がエスケープ文字列と判断されエラーになる場合があります。ここで紹介するプログラムはソースファイル中の2バイト文字列に着目し、バックスラッシュ(0x5c)を見つけて適切な形に変形します。

プログラム

プログラムはaddback.cという1ファイルに記述してあります。Unix(linux)ユーザはコンパイルして使ってください。
cc addback.c -o addback
で実行形式が作れます。 Windows用の実行ファイルはaddback.exeとして用意してあります。ディスクに保存して使ってください。

実行方法



Windows版の説明です。 Dos prompt上で、
prompt> addback ファイル名
とタイプしてください。結果は標準出力に出力されるので、リダイレクトして使ってください。

サンプル

サンプルとしてb.cという短いCプログラムを用意しました。これをコンパイルして実行してみてください。正しく表示されましたか? "n"が余分に表示されていませんか?
次に、
prompt> addback b.c > c.c
とやってから、c.cをコンパイル、実行してください。正しく表示されるはずです。

便利なツール
AWKによるテキスト処理
perlによるテキスト処理
Tkensaku

TKENSAKU top へ

Copyright © 2004 TKEN