やってみてください
次の文字列において、任意の文字列を検索し、任意の文字列で置換するプログラムを作成せよ
ただし、検索条件に当てはまらないときは以下の文字列をそのまま出力するものとする。
"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
こんな感じでしょうか。
#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;
}
- 最新から表示
- |
- 回答順に表示













