5

无符号字符流有什么用。

如果我有一个如下的无符号字符流,我如何打印该流中的值。

对于普通的字符流或字符串,我可以使用 %s 打印它,但是这个呢。

提前致谢。

unsigned char *ptr ="(some value)"
4

2 回答 2

7

unsigned char在字符串处理方面,和 plain之间没有显着区别char。后者可以是有符号的或无符号的,它是实现定义的。但是,所有符号表始终具有正索引。所以当你处理字符串时,你总是可以安全地在unsigned charand之间转换char。(这两种类型之间的指针转换在标准上是正式定义不明确的行为,但实际上,它始终适用于任何系统。)

因此printf("%s", ptr);会正常工作。

于 2013-08-22T06:46:31.420 回答
3

unsigned char 数组通常表示原始字节数据,如果您想通过使用将其作为字符串输出%s,您可能会得到乱码,这对您没有任何意义。如果您真的希望查看这些值,那么我建议将单个字节转换为short,然后使用%i.

只是我的观点。

于 2013-08-22T07:02:44.783 回答