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