Arduino字符串.replace()函数上的C / C ++不起作用

Ral*_*lph 2 c c++ arduino

我在Arduino中有此方法,它的编程语言基于C / C ++,并且应该替换\ r和\ n以便按原样打印\ r和\ n,但是当我尝试运行代码时,它给出了操作员错误不匹配:

void debugmsg(String msgtext) {
  msgtext = msgtext.replace("\r","\\r");
  msgtext = msgtext.replace("\n","\\n");
  Serial.println(msgtext1 + "\r\n");
}
Run Code Online (Sandbox Code Playgroud)

'operator ='不匹配(操作数类型为'String'和'void')

我不知道怎么了,谢谢您的帮助!

Kha*_*laf 5

.Replace()是一个无效函数。它直接修改字符串,因此无需将其分配给任何内容。只需像下面那样使用它,它将替换它:

msgtext.replace("\r","\\r");
msgtext.replace("\n","\\n");
Run Code Online (Sandbox Code Playgroud)

replace()Arduino 的from与您在此处使用的功能不同,因为它是C / C ++编程语言。那确实返回了String

编辑:

正如@unwind所注意到的,Arduino文档声明replace()返回一个String。但是,语法部分AND在其示例代码HERE中显示了该函数的常规用法,该函数直接修改字符串而不返回String!!我不知道。无论如何,只要将其用作我上面的代码即可。