String 如何将一个字符串添加到另一个字符串中,而不删除它的其余部分 我在尝试将一个字符串添加到另一个字符串的特殊位置时遇到了麻烦。每次我使用此代码时,字符串的其余部分都变为空白。
或 得到了相同的printf:String 如何将一个字符串添加到另一个字符串中,而不删除它的其余部分 我在尝试将一个字符串添加到另一个字符串的特殊位置时遇到了麻烦。每次我使用此代码时,字符串的其余部分都变为空白。,string,arduino,String,Arduino,或 得到了相同的printf: #0122.1 包括: #0122.16789ABCDEF 为什么它要删除字符串的所有其余部分,而不是只替换[3]之后的下4个位置,而不处理其余部分。 我使用的是arduino,但我认为这是一个通用的C问题 非常感谢 您应该将字符串数据移动到指定位置(而不是复制字符串,其中包括终止的'\0'): 如果你使用C++,那么在中使用String:: 新字符串=旧字符串.substr(0,3)+“某些文本”+旧字符串.substr(3) 在纯C中,首先需要确保目的地有
#0122.1
包括:
#0122.16789ABCDEF
为什么它要删除字符串的所有其余部分,而不是只替换[3]之后的下4个位置,而不处理其余部分。
我使用的是arduino,但我认为这是一个通用的C问题
非常感谢 您应该将字符串数据移动到指定位置(而不是复制字符串,其中包括终止的
'\0'
):
如果你使用C++,那么在
中使用String:: 新字符串=旧字符串.substr(0,3)+“某些文本”+旧字符串.substr(3)在纯C中,首先需要确保目的地有足够的空间。sprintf返回写入的字符数。使用此选项可确保目标有足够的空间。然后根据需要将两个子字符串与新字符串连接起来 选择一种编程语言。不同的语言,不同的答案。
sprintf
终止它写出的字符串,因此它在它写出的字符串末尾截断字符串。Arduino不是C.OMG你是上帝!我的printf现在是“#0122.16789ABCDE”,非常感谢!我从来没有听说过这个函数:O
#0122.1
#0122.16789ABCDEF
memcpy(pacote+3, temp_local, strlen(temp_local));