C++ 如何将int从int[]强制转换为const char*
喜欢这个话题。。。。比如说C++ 如何将int从int[]强制转换为const char*,c++,arduino,C++,Arduino,喜欢这个话题。。。。比如说 int[10] msg; msg[0] = 1; msg[1] = 2; const char* a = (const char*)msg[0]; const char* b = (const char*)msg[1]; 当我使用printf进行测试时,似乎没有任何价值 我打算这样使用它 char test[20]; strcpy(test, a); strcat(test, ","); strcat(test, b); strcat(test, "
int[10] msg;
msg[0] = 1;
msg[1] = 2;
const char* a = (const char*)msg[0];
const char* b = (const char*)msg[1];
当我使用printf进行测试时,似乎没有任何价值
我打算这样使用它
char test[20];
strcpy(test, a);
strcat(test, ",");
strcat(test, b);
strcat(test, "\0");
mclient.publish("topic1/sensorAck",test);
结果显示只有逗号strcpy和strcat在到达源字符串中的“\0”字符时停止。由于int 1实际上是4个字节(0,0,0,1),它将在第一个字节停止,因为它是零'\0',永远不会到达'1'值字节。以下是将整数转换为C字符串的C代码
int i = 1;
char text[12];
sprintf(text, "%d", i);
小于32的代码是控制代码,0x1即*a的值不可打印。您正在强制转换为const char*,但对其执行的操作是错误的。1和2不是可打印的ASCII字符,您还需要了解系统的尾数。你想把一个整数转换成一个字符串吗?用
itoa
或其他函数把int
转换成char*
。你能给我解释一下吗?先说明一下你想做什么吗?这取决于系统的尾端。它可能先达到1。结果是这个“ê”而不是“1”