将部分字符串与STDLB中的另一个字符串进行比较

时间:2012-06-10 19:29:13

标签: c++

我想知道在PHP中是否有像preg_match这样的函数,我可以找到或匹配另一个字符串的字符串。

   //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但是只会比较是否匹配对于我的案例总是假的整个字符串。

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分:1)

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

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


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

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