Trouble with unsigned char *

Trouble with unsigned char *

本文关键字:char unsigned with Trouble      更新时间:2023-10-16

我有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]将输出a。我错过了什么?

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

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

可能您更愿意使用itoa(10, s, 10);

函数

参考itoa手册,函数itoa被声明为…

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

如果你尝试执行cout << character;它将打印字符,而不是字符代码。要打印字符代码,您应该执行cout << (int)character;。不要对字符使用unsigned char,字符是有符号的字符,对于朋友来说就是简单的字符。