极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 35232|回复: 4

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

[复制链接]
发表于 2021-3-4 18:02:29 | 显示全部楼层 |阅读模式
如何判断字符串是否相同?
现在遇到的问题,无法正确执行 if 语句里的条件判断

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2021-3-4 22:19:58 | 显示全部楼层
现有问题是,
               串口接收到的数据是正常的,(通过print函数打印串口收到的数据,与我用上位机软件发出的数据是一样的)
               串口对外发送数据也是正常的,
               现在问题出在字符串是否相同这个比较判断上,
               网上我能找到的帖子里介绍方法都试了一遍,问题还没解决。

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

使用道具 举报

发表于 2021-3-5 10:20:50 | 显示全部楼层
(1) XXX.equals(YYY);
(2) strcmp(XXX.c_str(), YYY.c_str()) ==0)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-6 06:45:15 | 显示全部楼层

# include <stdlib.h>
# include <string.h>
String cdjo = "B07000C0";
String comdata = "";
unsigned char itea[6] = {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);
        }

}

回复 支持 反对

使用道具 举报

发表于 2021-3-7 13:12:47 | 显示全部楼层
字符串不能直接判断,可以用strcmp函数
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 16:11 , Processed in 0.042192 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表