2012-06-10 78 views
0

另一个字符串我不知道是否有像在PHP preg_match在哪里可以找到或搭配其他字符串中的一个函数的字符串的一部分。比较与STDLB

//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但如果是匹配与否,将只比较对于我的情况总是错误的整个字符串。

+0

。 – Ali

+1

@Hybride:阿里希望在C++ –

+1

为PHP的一个的preg_match接受equevalent提供答案之间的最佳答案,使蜱绿色。 ;) –

回答

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" 
+0

如何在我的情况下实现的任何示例?或者我仍然需要编写更多代码来使用它们? – Ali

+0

@Ali:我用一些简单的例子更新了我的答案。 –

+0

为什么它在上面给出的例子中返回'6'?你能解释一下我的理解吗? – Ali

1

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

也可以使用std::strstr()


作为另一种选择你可以使用动态编程语言来实现此功能g或回溯法(Dynamic Programming具有更高的性能)。

当然,我知道这个问题是不是一个算法问题,但我认为@Hybride我的意思是在C++中没有``中PHP` PHP`我知道这个答案可能是有用的

+0

我想知道怎样才能实现这个我的问题还是我需要做比较自己.... – Ali

+0

你是什么意思?你选择我最后提供的替代(自我实现)? –

+0

那么我想说的是。根据我提出的功能提出的问题,我能完成我想要做的事情吗?或者我仍然需要编写更多代码才能获得我的结果? – Ali