![](/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.