我刚开始学习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. 如何逐字逐字在C#中的字符串?
- 3. 用strchr在C中迭代字符串
- 4. 带字符串键的C#迭代器
- 5. 迭代字符串向量C++
- 6. 添加字符串逐字字符串
- 7. 把\”在逐字字符串与C#
- 8. 把{在逐字字符串与C#
- 9. 迭代每行中的一个字(字符串)C++
- 10. 迭代字符串问题
- 11. 迭代JSON字符串
- 12. Python迭代字符串
- 13. 迭代通过字符串?
- 14. 简化字符串迭代
- 15. 迭代多值字符串
- 16. 字符串逐字问题
- 17. 如何迭代Java中的字符串?
- 18. swift中的字符串迭代器
- 19. 迭代Java中的字符串列表?
- 20. 迭代字符串中的行吗?
- 21. 如何迭代python中的字符串?
- 22. 如何迭代Python中的字符串?
- 23. 在C#多行逐字字符串中转义字符串格式的参数
- 24. 迭代字符串中的行,包括换行符字符
- 25. 迭代字典和字符串列表
- 26. 在POSIX中对字符串中的字符进行迭代sh
- 27. 我如何迭代C字符串的字
- 28. [C#]文件路径中逐字字符串文字?
- 29. 在C++中迭代地串联两个字符串
- 30. 如何在JavaScript中迭代字符串?
您可以使用'strtok',但要注意,它实际上会修改字符串。 –
我从来没有遇到'strtok'的问题。这是它的目的。看到这个网站:http://www.cplusplus.com/reference/clibrary/cstring/strtok/ – djhaskin987
或者,使用'isspace',记录开始和结束,并复制它。 – Kevin