12

是否有可以在可能包含空字符的固定长度内存上工作的 strstr 版本?

我可以这样表达我的问题:strncpy 是 memcpy 就像 strstr 是 ?

4

3 回答 3

15

memmem,不幸的是,它是 GNU 特定的,而不是标准的 C。但是,它是开源的,因此您可以复制代码(如果许可证适合您)。

于 2010-01-02T18:03:21.940 回答
8

不在标准库中(不是那么大,所以看看)。但是,编写自己的代码是微不足道的,可以直接逐字节地编写,也可以迭代地使用 memchr() 后跟 memcmp()。

于 2010-01-02T18:05:05.277 回答
0

在标准库中,没有。但是,在 Google 上快速搜索“安全 c 字符串库”会发现几个可能有用的结果。在不了解您尝试执行的任务的更多信息的情况下,我不能推荐任何特定的第三方实现。

如果这是您在标准功能之外需要的唯一“安全”功能,那么最好自行推出而不是花费精力集成第三方库,前提是您有信心在不引入的情况下这样做额外的错误。

于 2010-01-02T18:09:18.900 回答