【发布时间】:2017-03-30 22:45:49
【问题描述】:
我在尝试在特定位置的另一个字符串中添加一个字符串时遇到了麻烦。每次我使用这段代码时,字符串的其余部分都会变为空白。
double temperature = 22.1;
unsigned char pacote[16] = "#0123456789ABCDEF";
unsigned char temp_local[3];
dtostrf(temperatura, 3, 1, temp_local);
sprintf(pacote+3,"%s", temp_local);
或
sprintf(pacote+3,temp_local);
得到相同的 printf:
#0122.1
代替:
#0122.16789ABCDEF
为什么它会擦除字符串的所有其余部分,而不是仅替换 [3] 之后的接下来的 4 个位置而留下其余部分。 我正在使用 arduino,但我认为这是通用的 C 问题。
非常感谢!!!
【问题讨论】:
-
选择一种编程语言。不同的语言,不同的答案。
-
sprintf终止它写出的字符串,因此它会在它写出的末尾截断字符串。 -
Arduino 不是 C.