【发布时间】:2012-11-20 21:31:19
【问题描述】:
是否有一种有效的方法可以在char *str1 中查找所有非 const char *str2 的出现(包括重叠),并在 C 中输出 str1 中匹配的数字位置(而不是在 C++ 中)不同)?
【问题讨论】:
-
您需要重叠还是不重叠的出现?你知道
strstr()吗?你试过什么? -
听起来你需要strstr()。
-
我需要包含重叠,但我不知道 strstr() ;)
-
我们所说的字符串有多长?如果它真的很长,您可能会考虑一些预处理以便之后快速操作。如果字符串不经常更改并且经常被查询,也是如此。
-
如果
str2是常量并且您想在多个str1中找到它,那么像Knuth-Morris-Pratt 或Boyer-Moore 这样的字符串搜索算法也可以胜过strstr如果您只扫描一个str1,则用于病理病例。
标签: c