无符号字符的问题*

时间:2011-10-30 00:09:04

标签: c++

我遇到了unsigned char *的问题。这是我的代码:

unsigned char *str=NULL;
str= (unsigned char*) realloc(str, 10*sizeof(unsigned char));
int number=10;
str[0]=(unsigned char) number;

每当我尝试使用cout看到str [0]时,它会显示除10之外的其他内容。将其他变量放入str时也会出现问题:

unsigned char c='c';
str[0]=c;
cout<<str[0];

str [0]会输出一个。我错过了什么?

1 个答案:

答案 0 :(得分:2)

s[0] = 10;表示将字符代码10放入数组s的第一个位置。尝试:

s[0] = '1'; s[1] = '0'; s[2] = '\0';

可能您希望使用函数itoa(10, s, 10);

参见itoa手册,itoa函数声明为......

char* itoa(int valueToConvert, char* outputBuffer, int base);

如果您尝试cout << character;它会打印字符,而不是字符代码。要打印字符代码,您应该cout << (int)character;。不要将unsigned char用于字符,字符,签名字符,简单字符,以及朋友。