「Applicat」という単語を見つけて、その単語だけでなく、その行全体を別のものに置き換える短い C コードを作成しようとしています。たとえば、次のような test.txt ファイルがあります。
お名前: お試し
申請者:何か
日付: 今日
私の現在のコードは「Applicat」という単語を見つけて「Applicat: ft_link」に置き換えますが、「何か」はまだそこにあります。次のようにするにはどうすればよいですか。
お名前: お試し
申請者: ft_link
日付: 今日
?
または、これを行う簡単な方法はありますか?
前もって感謝します!
これが私のコードの主要部分です:
char buffer[512];
while (fgets(buffer, sizeof(buffer), input) != NULL)
{
static const char text_to_find[] = "Applicat:";
static const char text_to_replace[] = "Applicat: ft_link";
char *pos = strstr(buffer, text_to_find);
if (pos != NULL)
{
char *temp = calloc(
strlen(buffer) - strlen(text_to_find) + strlen(text_to_replace) + 1, 1);
memcpy(temp, buffer, pos - buffer);
memcpy(temp + (pos - buffer), text_to_replace, strlen(text_to_replace));
memcpy(temp + (pos - buffer) + strlen(text_to_replace),
pos + strlen(text_to_find),
1 + strlen(buffer) - ((pos - buffer) + strlen(text_to_find)));
fputs(temp, output);
free(temp);
}