是否有一个版本的strstr可以在固定长度的内存中工作,可能包含空字符?
我可以这样说出我的问题: strncpy是memcpy,因为strstr是?
答案 0 :(得分:15)
memmem,不幸的是它是特定于GNU而不是标准C.然而,它是开源的,因此您可以复制代码(如果许可证适合您)。
答案 1 :(得分:7)
不在standard library(不是那么大,所以看看)。然而,编写自己的文件是微不足道的,可以是逐字节直接,也可以是迭代后使用memchr()和memcmp()。
答案 2 :(得分:0)
在标准库中,没有。但是,快速谷歌搜索“安全c字符串库”会产生几个可能有用的结果。如果不了解您尝试执行的任务的更多信息,我不建议任何特定的第三方实施。
如果这是您在标准功能之外所需的唯一“安全”功能,那么最好自己动手而不是花费集成第三方库的工作,只要您确信自己可以做到所以不引入额外的错误。