是否存在某种 'strcmpf' 实现?

Does some kind of 'strcmpf' implementation exists?

我正在寻找一个函数来检查字符串是否遵循(完全匹配)由对应于 format 字符串的附加参数指定的数据模式 像这样:

/* int strcmpf (char *str1, char *format, ...); */
char *test = "Hello World !"

if(!strcmpf(test, "%s%*s %c", "Hello ", '!')
    return HELLO_HAS_BEEN_SAID;
else
    return PROGRAM_ISNT_POLITE;

我自己实现这个我认为会非常困难,但这样的功能对于内容的语义解析可能非常有用。在我尝试自己编写这样的函数之前,我需要知道是否已经有一个库或代码片段提供了这样一个函数的实现?


更具体地说,我需要模式匹配行为。因此 test 必须与 format 参数对应的数据指定的模式完全匹配。

I need to know if there is already a library or code snippet that provides implementation of a function like this

标准库没有这样的功能。对第三方库推荐的请求在这里是题外话,但就我了解你想要的功能而言,我无论如何都不知道现有的第三方实现。

正如我在评论中所说,我建议您围绕 真正的 正则表达式而不是 printf()scanf() 设计模式匹配方面格式(不完全相同)。有几个正则表达式库可用于支持该部分。