我有一个C函数,该函数接受一个称为“缓冲区”的字符串,并将其解析,它将与关键字匹配,并使用该关键字在结构中分配值。

但是,有些关键字我想完全忽略。

该程序解析VCard文件(.vcf,虚拟名片)。

这是可能提供的示例行缓冲区:

FN;CHARSET=UTF-8:David Celery

FN是我感兴趣的关键字,David Celery是与FN相关的值。

但是,我根本不关心CHARSET = UTF-8。

所以我的问题是,有没有办法让我扫描缓冲区,然后简单地将“CHARSET = UTF-8”替换为“”,这样我就不必担心解析它(以及其他我只想搜索的类似关键字)忽略)。

谢谢,

最佳答案

看一下简单的ANSI C解决方案,例如:

void removeSubstring(char *s,const char *toremove)
{
  while( s=strstr(s,toremove) )
    memmove(s,s+strlen(toremove),1+strlen(s+strlen(toremove)));
}

10-06 07:05