0

我想知道是否有像preg_matchPHP 那样的函数,我可以在其中找到一个字符串或将一个字符串与另一个字符串匹配。

   //In Array `word`       // in array `part`
   "Backdoor",        0        "mark"         3 (matches "Market")
   "DVD",             1        "of"           2 (matches "Get off")
   "Get off",         2        ""            -1 (no match)
   "Market",          3        "VD"           1 (matches "DVD")

我在想,如果有一个函数可以只匹配字符串的一部分,那就太好了,但据我所知,只有strcmp但只会比较我的情况下的整个字符串是否匹配永远是假的。

4

2 回答 2

3

std::strstr(). 它不做正则表达式,但它做简单的字符串匹配。

const char *foo = "Quick brown fox";
const char *bar = "brown";

printf("%d\n", strstr(foo, bar) - foo);  // Displays "6"

当您使用 C++ 时,还有std::string::find()

std::string foo = "Quick brown fox";
std::string bar = "brown";

std::cout << foo.find(bar) << "\n";   // Displays "6"
于 2012-06-10T19:31:38.757 回答
1

您可以使用std::string::find()

你也可以使用std::strstr()


作为另一种选择,您可以使用动态编程或回溯方法来实现此功能(动态编程具有更高的性能)。

当然,我知道这个问题不是算法问题,但我认为这个答案很有用

于 2012-06-10T19:33:40.840 回答