我在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");
}
'operator ='不匹配(操作数类型为'String'和'void')
我不知道什么是错的,谢谢你的帮助!
答案 0 :(得分:4)
.Replace()
是一个无效函数。它直接修改字符串,因此无需将其分配给任何内容。只需像下面一样使用它,它将取代它:
msgtext.replace("\r","\\r");
msgtext.replace("\n","\\n");
Arduino中的replace()
功能与您在此使用的功能不同,因为它是C / C ++编程语言。那个确实返回String
修改强>
正如@unwind注意到的那样,Arduino Documentation表示replace()
返回一个字符串。但是,语法部分AND在其示例代码HERE中,它显示了该函数的例行用法,该函数直接修改字符串而不返回String
!我不知道。无论如何只是使用它作为我上面的代码。