是否可以将无符号字符数组表示为字符串?
当我搜索它时,我发现只有 memset() 能够做到这一点(但是逐个字符)。
假设这不是正确的方法,有没有办法进行转换?
上下文:我试图存储加密哈希函数的输出,该函数恰好是一个无符号字符数组。
eg:
unsigned char data[N]; ...
for(i=0;i<N;i++) printf("%x",data[i]);
我的目标是将数据表示为字符串 (%s),而不是通过每个元素访问它。因为我需要将散列的输出作为字符串进行进一步处理。
Thanks!
因此,根据您的更新,您是否在谈论尝试将无符号字符缓冲区转换为十六进制解释,如下所示:
#define bufferSize 10
int main() {
unsigned char buffer[bufferSize]={1,2,3,4,5,6,7,8,9,10};
char converted[bufferSize*2 + 1];
int i;
for(i=0;i<bufferSize;i++) {
sprintf(&converted[i*2], "%02X", buffer[i]);
/* equivalent using snprintf, notice len field keeps reducing
with each pass, to prevent overruns
snprintf(&converted[i*2], sizeof(converted)-(i*2),"%02X", buffer[i]);
*/
}
printf("%s\n", converted);
return 0;
}
哪个输出:
0102030405060708090A
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)