2011-09-18 55 views
0

即時嘗試比較使用strcmp.Im的數組的單詞試圖讓每個單詞在數組中出現多次只能打印一次,所以我可以確定獨特的數目words.I知道它做了什麼錯誤,因爲當它搜索數組打印出它找到每個副本,例如,如果單詞「the」在陣列中4次,它會打印出'the'3次,當string1去到'the'的下一個位置,它將打印2次,依此類推。使用strcmp查找數組中的匹配

+1

鮑勃的建設者!他能修好嗎?鮑勃建設者!不,他不能:( – quasiverse

+0

hehehe好的一個 –

+0

兩個問題:1.爲什麼這個問題用'cstring'標記?2.爲什麼你用'strcmp()'來比較C++中的字符串?'std :: string'有一個非常好的'operator =='! – Johnsyweb

回答

1

好,

從現在看起來它好像字[] []是多餘的,讓事情不必要的複雜。如果你只想獲得獨特的單詞,而不是僅僅通過建立一個帶有遇到的單詞的字典來處理從strtrok返回的內容

一個字典可以像包含唯一字的最大大小的數組一樣簡單,當數組爲空時,每當strtok返回一個單詞時,從0開始,遍歷數組並查找使用strcmp的單詞,如果它不存在,則在數組末尾添加它,然後增加索引。

和鮑勃是你的叔叔:)

+0

我唯一的建議是鏈接列表,而不是大數組。 – mange

+0

所以你說我加載一個數組的所有單詞,並將其與strok返回的內容進行比較? –

2

將您的字符數組轉換爲std::string,而不是打印它們,將它們放入std::set。然後打印集合中的每個元素。您添加的聲明

+0

我不能使用這個程序的字符串對象 –

+0

很好的答案,如果他能理解它。但我懷疑他知道如何使用'std :: string'更不用說'std :: set'。 – quasiverse

+2

@Bob:爲什麼?如果你打算對自己施加任意限制,那麼我將投票結束你的問題,因爲這太「本地化」了,因爲這不是C++程序員將面臨的真正問題。 –