我有一个char[]
缓冲区,其中包含从内存读取的数据,这意味着该缓冲区内有多个Null,而结尾处不仅只有一个终止Null。
char *addr = (char *)memmem(buff, strlen(buff), needle, strlen(needle));
我需要处理此字符串,然后搜索并替换某些内容。为此,我想使用memmem()
,但是不幸的是,它不起作用,因为缓冲区中有多个Null。
我试图将缓冲区中的Null替换为一个我认为不会出现的字符(Bell ASCII代码\ 7),然后对其进行处理,但这不起作用并破坏了我的数据。
还有另一种方法来处理具有多个Null的字符串吗?
memmem
可以用来做。但是,由于您的数据包含嵌入的空值,因此您不能用于strlen
计算长度。您需要分别跟踪长度。
char *addr = (char *)memmem(buff, buffLen, needle, needleLen);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句