问题标签 [strstr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
2231 浏览

c - strstr 和匹配项

我有几种可能的情况要测试strstr

然后根据发现我需要做的事情

在不使用大量 if 语句的情况下,有什么好的方法可以做到这一点?

0 投票
5 回答
8848 浏览

c - strstr 的优化版本(搜索长度不变)

我的 C 程序有很多 strstr 函数调用。标准库 strstr 已经很快,但在我的情况下,搜索字符串的长度始终为 5 个字符。我用一个特殊版本替换它以获得一些速度:

该函数返回一个整数,因为它足以知道 ct 是否出现在 cs 中。在这种特殊情况下,我的函数比标准 strstr 简单且更快,但我很想知道是否有人可以应用一些性能改进。即使是小的改进也是受欢迎的。

概括:

  • cs 的长度 >=10,否则它可能会有所不同。长度之前是已知的(未在我的函数中使用)。cs 的长度通常在 100 到 200 之间。
  • ct 的长度为 5
  • 字符串的内容可以是任何东西

编辑:感谢您的所有回答和评论。我必须研究和测试想法,看看什么最有效。我将从 MAK 关于后缀 trie 的想法开始。

0 投票
4 回答
4825 浏览

c# - C# 中的 strstr() 等价物

我有两个byte[],我想byte[]在第一个byte[](或其中的一个范围)中找到第二个的第一次出现。

我不想使用字符串来提高效率(将第一个转换byte[]为 astring效率低下)。

基本上我相信这就是strstr()C 中的作用。

最好的方法是什么(因此它既高效又易于使用)?

它应该是这样的:

谢谢!

更新:

我想要一个比简单搜索更有效的解决方案。这意味着应该使用比较缓冲区可以更有效的事实 - memcmp() 比迭代字节更有效

另外,我知道有一些算法可以优化这样的场景:

  • 大数组:“12312351231234”
  • 小数组:“1231234”
  • 朴素算法: 7比较发现“1231235”与“1231234”不同,2比较发现下一个“1”,4比较发现“1235”与“1231”不同,3比较发现下一个“ 1", 7 比较以找到匹配项。总共 7+2+4+3+7=23 次比较。
  • 智能算法: 7比较发现“1231235”和“1231234”不同,直接跳到下一个“1”(不比较),4比较发现“1235”和“1231”不同,直接跳到下一个“1” "5", 7 比较以找到匹配项。总共 7+4+7=18 次比较。
0 投票
10 回答
11075 浏览

c - c语言中通过指针的strstr

这是我制作的strstr的标准代码吗????

0 投票
3 回答
335 浏览

php - PHP: How to find the beginning and end of a substring in a string?

This is the content of one mysql table field:

Now, I want to read the remarks and store them in a variable. Remarks(1), Remarks(2), etc. are fixed. 'this is remark1', etc. come from form input fields, so they are flexible.

Basically what I need is: Read everything between 'Remarks(1):' and '--------' and save it in a variable.

Thanks for your help.

0 投票
2 回答
581 浏览

c - 在 C 中获取子字符串

我有以下格式的字符串:“R:625.5m E:-32768m”

拔出 625.5 最有效的方法是什么?

0 投票
3 回答
3731 浏览

php - 将 C(\0 终止)字符串转换为 PHP 字符串

PHP 是我定期使用的那些语言之一,但当我再次开始使用它时,通常不得不把蜘蛛网弄掉。本周我将一些 C 代码移植到 PHP 时也是如此。这使用了大量的 AES 加密和 SHA256 散列 - 到目前为止一切正常。然而,解密后的字符串以“C”形式出现——即以零字节结尾,后跟“垃圾”填充字节。

我目前使用以下内容将这些 C 风格的字符串“修剪”为 PHP 形式:

似乎冗长,应该有一个单行函数调用,但我找不到它?

注意:虽然在这种情况下,“哈希盐”名称暗示我可能知道原始字符串的长度,但这在一般情况下是未知的。substr()显然,当先验已知长度时,可以使用单行解决方案。

0 投票
4 回答
113 浏览

c - 在 C 中处理文本文件的异常行为

我正在尝试模拟 DNS 服务器的行为,我有一个名为 contains 的数据库hosts.txtmachine_names/IP_addresses例如:

这是我的代码:

我的代码从标准输入读取机器的值并指示分配给服务器上该机器的 IP 地址。问题是程序行为不正常,我不知道如何将我的代码修改为预期的输出,例如

对不起,如果这个问题很愚蠢,我是这门语言的新手.. 谢谢大家的帮助,请原谅我的英语

0 投票
1 回答
71 浏览

php - 我想要一个不同的变量来传递 stristr 但不能包含除了这 3 个不同的东西之外的任何东西

我有以下代码: -

如果 $ad['country'] 有美国、英国或加拿大,那么它应该通过,否则如果有除上述之外的不同值,它应该进入 else 休息。

示例:- 广告 1 有:(美国;英国)> 那么它应该通过 $adsptc4 广告 2 有:(美国;意大利)> 那么它应该失败。

如果您有不明白的地方,请告诉我。

效果很好,如果有任何缺点,请告诉我。

0 投票
2 回答
7650 浏览

c - 如何在包含 null 的缓冲区中搜索子字符串?

使用 C,我需要在可能包含空值的缓冲区中找到一个子字符串。

我需要返回子字符串的开头,或 null,类似于 strstr():

您是否知道任何现有的实现?

更新

我在谷歌的代码搜索中找到了 memove 的实现,我在这里逐字复制,未经测试,