簡體   English   中英

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

[英]C/C++ on Arduino string .replace() function is not working

我在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')

我不知道怎么了,謝謝您的幫助!

.Replace()是一個無效函數。 它直接修改字符串,因此無需將其分配給任何內容。 只需像下面那樣使用它,它將替換它:

msgtext.replace("\r","\\r");
msgtext.replace("\n","\\n");

Arduino的replace()函數與您在此處使用的函數不同,因為此處是C / C ++編程語言。 那確實返回一個String

編輯:

正如@unwind所注意到的, Arduino文檔指出replace()返回一個字符串。 但是,語法部分AND在其示例代碼HERE中 ,顯示了該函數的常規用法,該函數直接修改字符串而不返回String 我不知道。 無論如何,只要將其用作我上面的代碼即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM