我正在尝试将一个char数组放在一起,将无符号的char变量放到一个函数中,如下所示:
int swap(unsigned char first, unsigned char second){
printf("First: %u",first);
char result[4];
result[0] = first;
result[1] = '0';
result[2] = '0';
result[3] = '\0';
printf("\nResult: %s", result);
return 0;
}
在这种情况下,如果我将'2'传递给第一个(第一个打印语句工作正常),但第二个打印语句不会打印出'200'。我首先尝试在赋值语句中首先将(例如)(char)作为char进行转换但无效。
谢谢
答案 0 :(得分:5)
因为你正在使用int和' 2'在char中不是可见字符。您需要在值中添加48才能获得角色。
result[0] = first + 48;
您需要查看将数字映射到字符的ASCII表: http://www.asciitable.com/index/asciifull.gif
数字的字符表示从48开始,即字符(0)。如果您查看表格,那么您所放置的2的字符不会被定义为打印字符。这就是为什么它没有工作。