![](/img/trans.png)
[英]is there a function in a c lib to print data packets similar to Wireshark format (position then byte by byte)
[英]is there already a function similar to this in any C lib?
我一直在跟踪这个地方一段时间,但这是我的第一篇文章所以请放纵。 我已经为学校项目编写了这个函数,但不知道如何命名它(我们必须自己创建函数)。 问题是,有没有人知道库中是否有类似的功能,我知道如何命名它?
void function(char *str, int slen)
{
while(*str) {
if (slen) {
*str = *(str + slen);
} else {
*str = '\0';
}
if (*(str + slen) == '\0') {
slen = 0;
}
str++;
}
}
它能做什么:
通过SLEN
字符向开头滑动一个字符串,用'\\0'
填充结尾。 示例:
char *str = strdup("I want to remove 8 characters");
function(str, 8);
将我的字符串变为"remove 8 characters.\\0\\0\\0\\0\\0\\0\\0\\0\\0"
您可以使用memcpy
(如果from
和to
区域重叠,则使用memmove
)
然后memset
没有一个功能兼顾两者
如果你想将它传递给一个不负责清理内存的函数,你可以给它函数str+len
:
printFunc(str+len);
但是如果你需要在没有第一个len
chars
情况下传递这个字符串,那么你可以将字符串memcpy
到一个新字符串并释放最后一个字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.