#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char buf[1003], c, *p_base, *p_search;
int i;
if(argc < 3)
{
puts("エラー: 引数の数が不正です。");
printf("Usage: %s 検索文字列1 検索文字列2 [検索文字列3 [...]]\n", argv[0]);
return -1;
}
--argc;
while(fgets(buf, sizeof(buf), stdin))
{
p_base = &buf[0];
exec:
for(i = 1; i < argc; ++i)
{
p_search = strstr(p_base, argv[i]);
if(p_search)
{
c = *p_search;
*p_search = '\0';
fputs(p_base, stdout);
*p_search = c;
fputs(argv[i + 1], stdout);
p_base = p_search + strlen(argv[i]);
goto exec;
}
}
fputs(p_base, stdout);
}
return 0;
}