次の文字列において、任意の文字列を検索し、任意の文字列で置換するプログラムを作成せよ
ただし、検索条件に当てはまらないときは以下の文字列をそのまま出力するものとする。
"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

このQ&Aに関連する最新のQ&A

A 回答 (4件)

わざわざプログラムなんて作らなくたってsed使えば簡単じゃ?


先人の知恵は使えと言うけれど、使い方を間違えてるようじゃしょうがない‥‥。
    • good
    • 0

こんな感じでしょうか。



#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;
}
    • good
    • 0

あれ?前違う名前じゃありませんでした?


yahoo知恵袋でも同じ質問してますよね?
とりあえず、自分でやった分を見せ下さいね。
    • good
    • 0

 


ココは問題を出すサイトじゃないです。
貴方の判らない事を質問する場所ですよ。
判らない事を書いてください。

 
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング