在 IF 语句中将字符串分配给另一个字符串时出现问题
Problems assigning string into another string inside IF statement
我试图在 if 语句中将一个字符串分配给另一个字符串,基本上它是如何工作的,当程序启动时,字符串为 NULL,当我在控制台上为其分配一个新值时,主字符串接收值,我也创建了一个临时字符串来接收值。如果我在 if 语句外插入 temporary_string = main_string
,它将收到 main_string,但如果我在 if 语句内这样做,它将不起作用。
String wifi_name;
void setup() {
Serial.begin(115200);
}
void loop() {
String last_wifi_name;
if (Serial.available()){
wifi_name = Serial.readString();
}
wifi_name.trim();
Serial.print("wifi_name: ");
Serial.println(wifi_name);
Serial.print("last_wifi_name: ");
Serial.println(last_wifi_name);
if (wifi_name == ""){
Serial.println("No value");
}else{
Serial.println("It enters here");
last_wifi_name = wifi_name; //This is not working
}
delay(2000);
}
输出:
wifi_name:
last_wifi_name:
NULL
wifi_name: Trying to assign this
last_wifi_name:
It enters here
问题是,last_wifi_name 没有从 =
收到
问题是last_wifi_name
是一个局部变量。您正在设置
last_wifi_name = wifi_name;
但是在循环迭代结束时它被销毁,在下一个循环迭代开始时创建一个新的空变量。
我试图在 if 语句中将一个字符串分配给另一个字符串,基本上它是如何工作的,当程序启动时,字符串为 NULL,当我在控制台上为其分配一个新值时,主字符串接收值,我也创建了一个临时字符串来接收值。如果我在 if 语句外插入 temporary_string = main_string
,它将收到 main_string,但如果我在 if 语句内这样做,它将不起作用。
String wifi_name;
void setup() {
Serial.begin(115200);
}
void loop() {
String last_wifi_name;
if (Serial.available()){
wifi_name = Serial.readString();
}
wifi_name.trim();
Serial.print("wifi_name: ");
Serial.println(wifi_name);
Serial.print("last_wifi_name: ");
Serial.println(last_wifi_name);
if (wifi_name == ""){
Serial.println("No value");
}else{
Serial.println("It enters here");
last_wifi_name = wifi_name; //This is not working
}
delay(2000);
}
输出:
wifi_name:
last_wifi_name:
NULL
wifi_name: Trying to assign this
last_wifi_name:
It enters here
问题是,last_wifi_name 没有从 =
问题是last_wifi_name
是一个局部变量。您正在设置
last_wifi_name = wifi_name;
但是在循环迭代结束时它被销毁,在下一个循环迭代开始时创建一个新的空变量。