2012-06-10 148 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