2017-04-02 4 views
1

:_으로 바꾸는 일이 ESP8266 Mac 주소로되어 있습니다. 나는이 같은 replace() 방법 시도 :Arduino 대체 할 곳 : _

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

을하지만 일을하고 'class String' has no member begin를 throw하지 않습니다.

나는 C++ 전문가가 아니므로 :을 모두 _으로 바꿔서 도울 수 있습니다!

+1

당신은'아두 이노의'String' 클래스에 교체 .begin()'또는'.END을()'필요가 없습니다 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

replace 메소드가 무효이고 fly에서 문자를 대체하는 한, 조작하기 전에 MAC을 변수로 가져와야합니다.

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

은 콜론을 가져 오기 위해 WiFi.macAddress(). toString()의 필요성을 줄이는 것과 같은 문자열로 캐스팅합니다. ? – dandavis

+0

진술을 확장하면 초보자에게 도움이됩니다. 하지만 실제로는 toString for macAddr의 사용법에 대해 확신하지 못했습니다. 나는 연산자의 문자열 오버로드를 믿는다 : – cagdas

+0

JS에서'String (x)'가'x.toString'을 호출하기 때문에 묻는다. ardiuno 같은가요? – dandavis