テキストファイルの特定の文字列を別の文字列に置き換えるフィルターを作る課題が今回のコンテストのテーマだ。 フィルターとは、テキストファイルを読み込んで、何らかの操作を加えたテキストファイルを書き出すものをいう。 一般には、標準入力(コンソール入力:キーボード入力)から読み込んで、 標準出力(コンソール出力:画面出力)するものを作ることにしよう。
例えば、半角英数字を全角英数字に、また、その逆になるようにするものを作ってください。 まず、第一歩として、「数字」部門として「半角数字を全角数字に置き換えるもの」を作ってください。 次に、「英字」部門として、「半角数字を全角数字に置き換えるもの」に対応するもの、 更に「かな」部門として、半角カタカナを全角ひらがなにするもの、 最後に、「全対応」部門として、全てに対応したものを最終目標とします。
1. | 「数字」 部門 | 「0123456789,.」を「0123456789,.」に |
2. | 「英字」 部門 | 「abcdefg..」を「abcdefg..」に |
3. | 「英数字」 部門 | 「1234abcdefg..」を「1234abcdefg..」に |
4. | 「英数字かな」 部門 | 「アイウエオカ..」を「あいうえおか..」に |
5. | 「全対応」 部門 | 更に、カタカナも含めて全対応 |
以上の5部門とし、そのプログラムの使い方は、コマンドラインから次のように使うものとする。 また、「全角半角置き換え」の逆置き換えも同時開催します。
なお、このフィルターの仕事を簡単に扱えるものとして、sed、awk、perl などのスクリプト系の言語があり、簡単に作れます。 これらの言語も参考にしてはいかがでしょうか。(上記のツール類はUnixでよく使われるコマンドとして有名です)
![]() |
「文字列置き換え」競技「記録」 |
![]() |
全プログラミングコンテストの「記録」総集編 |
![]() |
第1回「素数発見」競技 コンテスト規定 |
![]() |
第2回「超電卓」競技 コンテスト規定 |
![]() |
第3回「分数電卓」競技 コンテスト規定 |
![]() |
第4回「文字列並べ替え」競技 コンテスト規定 |
![]() |
第6回「積み算」競技 コンテスト規定 |
![]() |
第7回「円周率」競技 コンテスト規定 |
![]() |
フリーのプログラミング言語、開発ツールの入手法 |
このページは2003/2/22 に最初に作成されました。