我剛開始學習C.我現在想要的是,我有兩個字符串,其中每個單詞由空格分隔,我必須返回匹配單詞的數量兩個字符串。那麼,C語言中是否有任何功能可以把每個單詞拿來與另一個單詞中的其他單詞進行比較,如果不是我可以如何做到的話。迭代C中的字符串,逐字
2
A
回答
1
分手在單詞的第一個字符串,這個你可以在任意數量的方式一切從通過字符數組在每個空間插入\0
使用strtok
循環做。
對於找到的每個單詞,使用strstr
來檢查其他字符串,它檢查字符串是否存在。只需檢查strstr
的返回值,如果!= NULL
它找到它。
0
我不想用strtok
,但堅持指針算術長度比較和memcmp
來比較等長度的字符串。
0
有兩個問題在這裏:
1)分割每個字符串成字
的strtok()
功能可將一個字符串轉換成單詞。
這是一個有意義的練習,可以想象如何編寫自己的等效文件strtok
。
rosetta project顯示strtok
和一個自定義方法來精確解決這個問題。
我自然會寫我自己的解析器,因爲它是一種吸引我的代碼。這對你來說可能是一個有趣的練習。
2)找到在一個字符串也是另一個
如果您遍歷每個單詞一個字符串在另一個每個單詞的那些話,它有O(n*n)複雜性。
如果您將一個字符串中的單詞編入索引,它將只需要O(n),這實際上更快(如果您的輸入足夠大,可以使其變得有趣)。值得一想的是,如何在一個字符串中構建一個hashtable這樣的單詞,以便您可以在另一個字符串中查找單詞。
相關問題
- 1. C++字符串迭代器
- 2. 迭代mysql中字符串的字符
- 3. 如何逐字逐字在C#中的字符串?
- 4. 用strchr在C中迭代字符串
- 5. 在C中反轉字符串迭代
- 6. 在C中迭代XML字符串#
- 7. 在C中逐字比較字符串
- 8. 字符串迭代
- 9. 帶字符串鍵的C#迭代器
- 10. C++:如何迭代字符串中的每個字符?
- 11. 的Python逐字字符串在C#
- 12. JAVA中的逐字符串替代品
- 13. C:通過字符串數組迭代
- 14. 迭代字符串向量C++
- 15. 比較字符串逐字C++
- 16. 把\」在逐字字符串與C#
- 17. 把{在逐字字符串與C#
- 18. 從C中的一個字符串中逐字符的讀取
- 19. 添加字符串逐字字符串
- 20. 迭代每行中的一個字(字符串)C++
- 21. 迭代替換字符串
- 22. 迭代字符串問題
- 23. Python迭代字符串
- 24. 可迭代字符串
- 25. 簡化字符串迭代
- 26. 迭代通過字符串
- 27. 迭代多值字符串
- 28. 迭代通過字符串?
- 29. 迭代JSON字符串
- 30. 迭代過去的字符串和從字符串中去除字符串
您可以使用'strtok',但要注意,它實際上會修改字符串。 –
我從來沒有遇到'strtok'的問題。這是它的目的。看到這個網站:http://www.cplusplus.com/reference/clibrary/cstring/strtok/ – djhaskin987
或者,使用'isspace',記錄開始和結束,並複製它。 – Kevin