我有一个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)));
}