是某种' strcmpf'实施存在?

时间:2016-08-05 12:36:51

标签: c string formatting string-comparison c-libraries

我正在寻找一个函数来检查字符串是否跟随(完全匹配)由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参数对应的数据指定的模式。

1 个答案:

答案 0 :(得分:3)

  

我需要知道是否已经有一个库或代码片段提供了像这样的函数的实现

标准库没有此类功能。第三方库建议的请求在这里是偏离主题的,但是在我理解您想要的功能的范围内,我无论如何都不知道现有的第三方实现。

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