我们如何测试unsigned char数组的结尾?使用字符串char很容易,我可以像
那样进行测试while (str[i] != '\0')
或只是
while (str[i])
但是使用无符号字符数组不起作用,我不明白为什么。这是我需要帮助的一个例子
BYTE* a = getB();
int i=0;
while(a[i]!=0)
{
printf("%C", a[i]);
i++;
}
由于
答案 0 :(得分:8)
完全取决于您。
也就是说,你定义数组末尾的含义。
传统上,确定,字符数组的结尾是"空字节",表示终止位置。没有理由你可以使用unsigned char
数组来做到这一点。
但是,就像char
一样,情况不一定如此。也许你通过计算它的元素(指定一个大小)或通过声明其他一些字符是最后一个来表示数组的结尾。
我们不能告诉你那是什么。只有创建数据的人(就我们在这里所关注的那样,你)才能这样做。
因此,请查阅为您提供阵列的库的文档,或者访问您的内存。 :)
答案 1 :(得分:1)
@eugenesh是对的。你不能这样做。要么你需要在末尾有额外的空间并添加某种分隔符或保持字符数