2017-04-02 62 views
1

我在替換所有:和我的ESP8266 Mac地址中的_。我試過replace()方法是這樣的:Arduino替換:與_

WiFi.macAddress().replace(WiFi.macAddress().begin(), 
WiFi.macAddress().end(), ':', '_'); 

但它不工作,並拋出'class String' has no member begin

我不是C++專業人士,所以也許你可以幫我在Mac地址中用_替換所有:

+1

你不需要'.begin()'或'.END()'中的Arduino的'String'類取代:https://www.arduino.cc/en/Tutorial/StringReplace – UnholySheep

+0

@ UnholySheep當使用'WiFi.macAddress()。replace(「:」,「_」)''我得到'無效使用'void'' – dunklesToast

+1

因此,檢查[WiFi.macAddress()']的參考(https: //www.arduino.cc/en/Reference/WiFiMACAddress)它甚至不會返回一個字符串,它會返回一個字節數組 - 意味着沒有':'來替換那裏。你必須自己構建字符串(在這種情況下,你可以決定你想要的分隔符,如果有的話) – UnholySheep

回答

2

只要替換方法是無效的並且替換字符,您需要在操作之前將MAC變爲變量。

String MAC = WiFi.macAddress(); 
MAC.replace(':', '_'); 
Serial.println(MAC); 
+0

不會像字符串一樣強制轉換,因此需要'WiFi.macAddress()。toString()'來獲得冒號? – dandavis

+0

擴大陳述對初期人士更有幫助。但實際上我不確定使用toString的macAddr。我相信在運算符重載字符串:) – cagdas

+0

我問,因爲在JS中,'字符串(x)'調用'x.toString'; ardiuno是一樣的嗎? – dandavis