首页 > 解决方案 > 查找/替换许多单词

问题描述

我有一条日志输入消息,我需要根据以下内容对其进行格式化:

#define DEFAULT_FORMAT "[%(levelname)] %(time) %(name) - %(filename):%(funcName):%(lineno) - %(msg)"

如果要编写一个基本上执行类似(伪代码)的函数:

char output_buffer[size??];
char* replacements = {"%(levelname)", "%(time)", ...};
for (int i=0; i<sizeof(replacements)/sizeof(*replacements) ; i++)
    replace(from, to, output_buffer);

但这提出了一些棘手的问题,例如,我怎么知道输出缓冲区的大小?我是否必须执行两次,首先查看输出缓冲区的大小,然后才能实际进行替换?执行上述操作可能是一种明智的方法?

标签: c

解决方案


推荐阅读