tv998 发表于 2021-3-4 18:02:29

如何判断字符串是否相同?

如何判断字符串是否相同?
现在遇到的问题,无法正确执行 if 语句里的条件判断

tv998 发表于 2021-3-4 22:19:58

现有问题是,
               串口接收到的数据是正常的,(通过print函数打印串口收到的数据,与我用上位机软件发出的数据是一样的)
               串口对外发送数据也是正常的,
               现在问题出在字符串是否相同这个比较判断上,
               网上我能找到的帖子里介绍方法都试了一遍,问题还没解决。

源码功能,就是收到上位机发来的命令后,先判断收到的命令,是否与已知的命令相同?如果相同则给上位机返回一个命令。求助前辈门指导一下迷津,谢谢。

kevinzhang 发表于 2021-3-5 10:20:50

(1) XXX.equals(YYY);
(2) strcmp(XXX.c_str(), YYY.c_str()) ==0)

tv998 发表于 2021-3-6 06:45:15


# include <stdlib.h>
# include <string.h>
String cdjo = "B07000C0";
String comdata = "";
unsigned char itea = {0xB0,0x70,0x30,0x1C,0x77,0xEC};

void setup() {

Serial.begin(9600,SERIAL_8E1);
while(Serial.read() >= 0){}//清除串口缓冲区
}

String readLine()//读整行字符串子程序
{
String comdata="";
while(Serial.available())
{
    comdata += char(Serial.read());
    delay(2);
}
return comdata;
}

void loop()
{
      comdata=readLine();//读整行字符串
      //Serial.print(comdata);//调试用,执行到这里都正常
      if(comdata=="B07000C0")//这个语句始终无法正确判断
      {
          Serial.print(comdata);//调试用
          //Serial.write(itea,6);
          comdata = "";
          while(Serial.read() >= 0){}//清除串口缓冲区
          delay(200);
      }

}

GGHYM 发表于 2021-3-7 13:12:47

字符串不能直接判断,可以用strcmp函数
页: [1]
查看完整版本: 如何判断字符串是否相同?