C/C++の宿題を片付けます 119代目
■ このスレッドは過去ログ倉庫に格納されています
0558デフォルトの名無しさん
2008/12/11(木) 12:46:45[2] char型の配列に初期設定された文字列内を検索し、指定された文字列パターンに合致する全ての箇所を見付ける。検索する文字列のパターンは標準入力から読み込む。
検索はテキストの先頭から最後まで行い、パターンに合致する全ての箇所についてその位置(テキストのオフセット)を標準出力に表示する。
最後に、見付かった箇所数を表示する(0なら見付からなかったことを示す)。
char型の配列に初期設定で代入する文字列定数は次のものである。
"The only way to learn a programming language is by writing programs in it."
このプログラムを実現する際に、次の関数を定義し、main関数でそれを利用すること。
・int search(char pattern[], char text[])
第2引数で与えた文字列内の、第1引数で与えた文字列パターンと合致する全ての箇所を見付ける。見付けるたびに次のメッセージを標準出力に表示する。
Found pattern at <位置><改行>
戻り値として見付かった箇所の数を返す。なお、この関数を実現する際に、次の2つの関数を利用すること。
int length(char s[])
int match(char pattern[], char string[], int index)
見付かった箇所数の指示はmain関数で行うこと。
パターンとして"program"を指定した場合の実行結果の模範例を示す。
$./a.out
Text: The only way to learn a programming language is by writing programs in it.
Enter pattern: program
Found pattern at 24
Found pattern at 59
There are 2 matches.
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2008年12月11日20:00まで
[5] その他の制限: while とか if を使ってほしいです。
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています