我正在尝试编写一些简短的 C 代码,这些代码将找到“应用程序”这个词,并将整行替换为其他内容,而不仅仅是这个词。例如,我有一个 test.txt 文件,上面写着:
名称:测试
申请:某事
日期:今天
我当前的代码会找到“应用程序”一词并将其替换为“应用程序: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);
}