【发布时间】:2015-12-23 18:19:46
【问题描述】:
我的意思是,我们可以这样使用:
char string1[] = "???, buddy*\0";
char string2[] = "Hey, buddy, hello!\0";
if (like(string1, string2)
puts("strings are similar!");
else
puts("string are different!");
【问题讨论】:
-
不确定 strcmp 会不会。我怀疑 OP 会期望 string1 和 string2 是“喜欢”的,如果我们将 string1 视为正则表达式,那么 string2 会匹配。也就是说,OP 可能想查看 C 的正则表达式库
-
@hacks
strcmp是否接受掩码符号?喜欢?和*? -
我不认为这是重复的。 OP 要求的是 glob,而不是正则表达式。
-
POSIX 为
fnmatch.h中的glob(通配符,如?和*)提供了函数。你需要的函数叫做fnmatch()。 -
如果你想要像 "%xxx%" 这样简单的东西,你可以使用 strstr。