微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

比较字符和字符串

如何解决比较字符和字符串

我目前正在做一个大学项目,我的大部分背景来自 JS 和 Python。我有一个 Arduino 正在接收数据并使用 ArduinoJSON 接收设置并反序列化它们。我已将设置设为 const char* setting。其中可以包含一系列数据类型(主要是 int 或 bool)。但我专注于尝试从字符中获取 bool 值。

setting = doc["setting"];
if (setting == "true") {
  test = true;
} else if (setting == "false") {
  test = false;
}

我尝试了上述方法但没有运气。我也尝试将字符转换为字符串,但没有运气。我也尝试使用 .compare() 函数,但也没有运气。大家有什么推荐的吗?

解决方法

对于 const char*== 运算符将比较指针值而不是文本值(由于数据存储在不同的位置,文本值通常总是不同的)。您可以将其更改为:

if (strcmp(setting,"true") == 0) { test = true; }
else if (strcmp(setting,"false") == 0) { test = false; }

而不是让事情工作。或者,您可以在进行比较之前将设置转换为 String,这也应该有效:

String setting = String(doc["setting"]);
if (setting == "true") { test = true; }
else if (setting == "false") == 0) { test = false; }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。