我正在尝试将一个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;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果我将'2'传递给第一个(第一个打印语句工作正常),但第二个打印语句不打印'200'.我首先尝试在赋值语句中首先将(例如)(char)作为char进行转换,但无济于事.
谢谢
因为你使用的是int而char中的'2'不是可见字符.您需要在值中添加48才能获得该字符.
result[0] = first + 48;
Run Code Online (Sandbox Code Playgroud)
您需要查看将数字映射到字符的ASCII表:http: //www.asciitable.com/index/asciifull.gif
数字的字符表示从48开始,即字符(0).如果您查看表格,那么您所放置的2的字符不会被定义为打印字符.这就是它无法正常工作的原因.