|
>1.キーボードから三つの文字列を入力させます。その三つをそれぞれ元の文字列,検索文字列,置換文字列と呼びます。
>2.元の文字列を頭から順に調べ、検索文字列と一致する部分文字列が含まれているかを判断します。もし含まれていれば、それをすべて置換文字列で置き換えて新しい文字列を作ります。
放置?
もったいないので書いてみました。
あんまりテストしていないソース:#include <string.h>
#include <stdio.h>
char * ReplaceStr(char * s, const char * find, const char * replace)
{
char * tmp = s;
for (; *s; ++s) {
const size_t find_len = strlen(find);
const size_t replace_len = strlen(replace);
if (memcmp(s, find, find_len) == 0) {
char *const src = s + find_len;
char *const dst = s + replace_len;
const size_t len = strlen(s) - find_len + replace_len;
memmove(dst, src, len);
memcpy(s, replace, replace_len);
s += len;
}
}
return tmp;
}
int main(void)
{
char s[256], find[256], replace[256];
while (scanf("%s%s%s", s, find, replace) == 3) {
puts(s);
ReplaceStr(s, find, replace);
puts(s);
}
return 0;
}
|