在大多数情况下,我在python中工作,因此我非常欣赏repr()
函数,当传递一个任意字节字符串时,它将打印出人类可读的十六进制格式。最近我在c中做了一些工作,我开始怀念pythonrepr
函数。我一直在网上搜索类似的东西,最好是void buffrepr(const char * buff, const int size, char * result, const int resultSize)
之类的,但我没有运气,有人知道一个简单的方法来做这个吗?
最佳答案
sprintf(字符*,”%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;
}
}
}