无符号字符流有什么用。
如果我有一个如下的无符号字符流,我如何打印该流中的值。
对于普通的字符流或字符串,我可以使用 %s 打印它,但是这个呢。
提前致谢。
unsigned char *ptr ="(some value)"
unsigned char
在字符串处理方面,和 plain之间没有显着区别char
。后者可以是有符号的或无符号的,它是实现定义的。但是,所有符号表始终具有正索引。所以当你处理字符串时,你总是可以安全地在unsigned char
and之间转换char
。(这两种类型之间的指针转换在标准上是正式定义不明确的行为,但实际上,它始终适用于任何系统。)
因此printf("%s", ptr);
会正常工作。
unsigned char 数组通常表示原始字节数据,如果您想通过使用将其作为字符串输出%s
,您可能会得到乱码,这对您没有任何意义。如果您真的希望查看这些值,那么我建议将单个字节转换为short
,然后使用%i
.
只是我的观点。