- 締切済み
やってみてください
次の文字列において、任意の文字列を検索し、任意の文字列で置換するプログラムを作成せよ ただし、検索条件に当てはまらないときは以下の文字列をそのまま出力するものとする。 "acabcabbcb" if switch for while do-while 配列 をなるべく使う。 <実行結果1> 元の文字列 :acabcabbcb 検索する文字列 :ca 置換する文字列 :L 置換後の文字列 :aLbLbbcb <実行結果2> 元の文字列 :acabcabbcb 検索する文字列 :b 置換する文字列 :DFGH 置換後の文字列 :acaDFGHcaDFGHDFGHcDFGH <実行結果3> 元の文字列 :acabcabbcb 検索する文字列 :cabb 置換する文字列 :A 置換後の文字列 :acabAcb <実行結果4>(検索条件に当てはまらない時) 元の文字列 :acabcabbcb 検索する文字列 :asdf 置換する文字列 :w 置換後の文字列 :acabcabbcb
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- ts3m-ickw
- ベストアンサー率43% (1248/2897)
わざわざプログラムなんて作らなくたってsed使えば簡単じゃ? 先人の知恵は使えと言うけれど、使い方を間違えてるようじゃしょうがない‥‥。
こんな感じでしょうか。 #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char target[] = {'a','c','a','b','c','a','b','b','c','b','\0'}; char *lookup = argv[1]; char *replace = argv[2]; char *tp = target; char *sp; int lookup_length = strlen(lookup); while((sp = strstr(tp, lookup)) != NULL){ *sp = '\0'; fputs(tp, stdout); fputs(replace, stdout); tp = sp + lookup_length; } fputs(tp, stdout); return 0; }
- zwi
- ベストアンサー率56% (730/1282)
あれ?前違う名前じゃありませんでした? yahoo知恵袋でも同じ質問してますよね? とりあえず、自分でやった分を見せ下さいね。
- 中京区 桑原町(@l4330)
- ベストアンサー率22% (4373/19606)
ココは問題を出すサイトじゃないです。 貴方の判らない事を質問する場所ですよ。 判らない事を書いてください。