2016-03-26 99 views
-1
char words[5] = { 't', 'd' , 'o', 'g', 'i', }; 
    cout << "enter letter "; 


    char dogsearch[3] = { 'd', 'o', 'g' }; 

    if (words == dogsearch) 
     cout << "found words"; 
    else 
     cout << "Not found word"; 

我有兩個陣列和互相比較它們找到similiarity,並在每個另一差異,如果有類同我想輸出是怎麼回事,反之亦然串C++ ==比較

+1

'如果(字== dogsearch)'其實比較兩個三分球,這將永遠是相同的。 –

+1

'string sentence(words);'這會通過緩衝區溢出展現出未定義的行爲,因爲'words'不是以NUL結尾的。使它成爲'string sentence(words,5);',或者在原始數組上使用'std :: find'算法。 –

+1

即使通過一些奇蹟,「words == dogsearch」比較了兩個數組的內容 - 有什麼意義?你已經知道內容是不同的 - 你自己初始化它們到不同的值。目前還不完全清楚你想在這裏實現什麼。你想找什麼地方? –

回答

0

您可以使用字符串::找尋找匹配子

char words[5] = { 't', 'd' , 'o', 'g', 'i', }; 
char dogsearch[3] = { 'd', 'o', 'g' }; 

string words_str(words, sizeof(words)); 
string needle(dogsearch, sizeof(dogsearch)); 

size_t pos = words_str.find(needle); 
if (pos != std::string::npos) 
    cout << "found words at position " << pos << '\n'; 
else 
    cout << "Not found word; 
+0

感謝你,這是什麼!= std :: string ::非營利組織)?你是否可以解釋一下,還有什麼方法可以看出這個詞的第一個字符在什麼位置? –

+0

@kastozu'words_str.find(needle)'返回第一個匹配的第一個字符的位置。 – DimChtz

+0

請參閱編輯,以獲取更新版本。 對於無論使用downvote的人來說:如果你真的提出了改進帖子的建議,這將會更有幫助。 – pokey909