C 将数组中的数字写入函数的命令
我有一个数组(array),其中包含一些数字字符:C 将数组中的数字写入函数的命令,c,C,我有一个数组(array),其中包含一些数字字符: char array[] = [20, 3, 32, 34, -12] //for example 我想包括以下数字,以便通过以下方式调用函数: 对于数组[0],要发送的消息将是“R 20”。 对于数组[1],它将是“r3” 我该怎么做?我知道我需要一个“for”循环来实现所有这些,但我的问题是如何将“R数组[0]”设置为“r20” 提前谢谢 sprintf将其放入一个足够大的缓冲区,并传递该缓冲区: char buf[14]; //14
char array[] = [20, 3, 32, 34, -12] //for example
我想包括以下数字,以便通过以下方式调用函数:
对于数组[0],要发送的消息将是“R 20”。
对于数组[1],它将是“r3”
我该怎么做?我知道我需要一个“for”循环来实现所有这些,但我的问题是如何将“R数组[0]”设置为“r20”
提前谢谢
sprintf
将其放入一个足够大的缓冲区,并传递该缓冲区:
char buf[14];
//14 is enough for "R " (2) +
//the decimal representation of any 32 bit int (11) + '\0' (1)
//2 + 4 + 1 = 7 would be enough for sized, 8 bit chars
sprintf(buf, "R %d", array[i]);
什么字符映射到-3?如果您想要有符号字符大小的值,请使用
signed char
而不仅仅是char
-普通char
可以有符号或无符号。C在数组初始值设定项周围使用{…}
;你所写的更像Python。你知道你需要一个循环,请制作一个,显示。sendtoserver()的原型是什么??也许你可以将它制作成一个“有符号的字符”数组,因为负值似乎是必需的,而“字符”可能是无符号的。
char buf[14];
//14 is enough for "R " (2) +
//the decimal representation of any 32 bit int (11) + '\0' (1)
//2 + 4 + 1 = 7 would be enough for sized, 8 bit chars
sprintf(buf, "R %d", array[i]);