在大多数情况下,我使用Python工作,因此我对repr()函数表示了极大的赞赏,当传递一串任意字节时,它将打印出人类可读的十六进制格式.最近我一直在用C做一些工作,我开始想念python repr函数.我一直在互联网上寻找与它类似的东西,最好是类似的东西void buffrepr(const char * buff, const int size, char * result, const int resultSize)但我没有运气,是否有人知道这样做的简单方法?
sprintf(char*, "%X", b);
你可以像这样循环(非常简单):
void buffrepr(const char * buff, const int size, char * result, const int resultSize)
{
while (size && resultSize)
{
int print_count = snprintf(result, resultSize, "%X", *buff);
resultSize -= print_count;
result += print_count;
--size;
++buff;
if (size && resultSize)
{
int print_count = snprintf(result, resultSize, " ");
resultSize -= print_count;
result += print_count;
}
}
}
Run Code Online (Sandbox Code Playgroud)