在 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;

但是在循环迭代结束时它被销毁,在下一个循环迭代开始时创建一个新的空变量。