【问题标题】:Problems assigning string into another string inside IF statement在 IF 语句中将字符串分配到另一个字符串时出现问题
【发布时间】:2021-01-06 18:12:36
【问题描述】:

我试图在 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

【问题讨论】:

  • 您必须将 wifi_name 与字符串进行比较 if(wifi_name == NULL) 是无稽之谈。你忘了引号
  • 我已经改变了比较,但是引号是什么意思?

标签: c++ arduino arduino-ide


【解决方案1】:

问题在于last_wifi_name 是一个局部变量。您正在设置它

last_wifi_name = wifi_name;

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

【讨论】:

    猜你喜欢
    • 2011-07-03
    • 2012-09-05
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 2020-04-28
    • 2018-09-12
    相关资源
    最近更新 更多