gpt4 book ai didi

c - 搜索并替换字符串并忽略空字节字符

转载 作者:行者123 更新时间:2023-11-30 16:00:49 26 4
gpt4 key购买 nike

我正在开发一个 C 程序,该程序使用 NFQUEUE 来过滤另一个应用程序的流量。我需要做的事情之一就是用另一个字符串替换数据包中包含的字符串。

问题是,数据包似乎随机包含空终止符字节(在字符串中间)。这意味着我看到的大多数使用 strstr() 的解决方案都不起作用。我需要找到类似的东西,它不会在到达空终止符字节时停止,而是允许指定长度并使用它。 (nfq_get_payload() 返回一个长度。)

我考虑过在执行替换之前用另一个字节替换空字节,然后在数据包发送之前恢复空字节。这种方法的问题是数据包有可能包含该字符,因此这不是最好的方法。我想我还可以找到一个不包含在数据包中的随机字节,但我宁愿避免这样做。

编辑:原始字符串和替换字符串的长度相同,均为 13 个字符。

最佳答案

您可能会对 memchr 感到满意如果找到一个适合你的角色。否则,您必须自己制作一个 memmem 实现或在网上找到一个。

请注意,字符串搜索算法(因为 memmem 就是这样)可以具有广泛的性能特征,因此您希望找到一个基于高性能算法的算法(例如 this one 看起来可以接受,但您的里程可能会有所不同)。

关于c - 搜索并替换字符串并忽略空字节字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7412376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com