C/C++の宿題を片付けます 89代目
■ このスレッドは過去ログ倉庫に格納されています
0490デフォルトの名無しさん
2007/06/10(日) 21:12:09[2] 問題文(含コード&リンク):
長さ256文字以下の英数字,空白の並びからなる文字列を二つ入力し,それぞれをT1, T2とする.
T1の中にT2が出現する場合に,その一番左に現れる文字列の先頭アドレスを値として返す関数 char *findstr(char *t1, char *t2);を作成しなさい.
ただし,T1の中にT2が出現しないときはNULLを値として返すものとする.
findstr()の中で,比較対象となるT1のなかの先頭文字を先頭から一文字ずつずらして
chkmatch()を呼び出すことにより要求を満たす関数を作成することができる.
この関数を用いて, 1)最初にT1を表示し,2)その次にT1の中でT2の文字列が出現するまでの文字をスペース(' ')として端末に出力し,
そのあとT2の文字列文だけ(’^’)を出力し、再度T2の文字列が出現するまでスペース(’ ’)を出力し..というプロセスを文末まで続けるプログラムを作成しなさい。
3a)このプロセスは、findstrを実行して文字列の先頭を検索し、そこまでスペースを出力する。3b)文字列の先頭が検出されたら、T2の文字列分だけ(’^’)を出力する。
3c)T2の文字列分だけポインタを進め、そこからfindstrを再実行する(3aにもどる)というプロセスを繰り返すことで完成する。4)T2がT1に出現しない場合はT1の文字数だけのスペースが表示されるようにすること.
プログラミングにあたっては,配列宣言を除き,すべてポインタを用いて処理すること.
文字列は60文字以下が入力されるものとし,文字列の長さに関するエラー処理をする必要はない.
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2007年06月13日まで)
[5] その他の制限: #include "stdio.h"のみで、他の標準ライブラリの関数を使う場合は自作すること。
この二つをお願いします。
■ このスレッドは過去ログ倉庫に格納されています