【问题标题】:Substract first occurency from char*减去第一次出现的 char*
【发布时间】:2023-02-13 21:39:22
【问题描述】:

我在 esp32 上有这段代码,它从 obd 适配器获取命令返回

if (receive(buffer, sizeof(buffer)) > 0) {
    char *p = buffer;
    Serial.print("3 - p:");
    Serial.println(p);
    Serial.print("31 - size of p : ");
    Serial.println(strlen(p));
            
    p = strstr(p, "43 ");
    Serial.print("32 - p:");
    Serial.println(p);
 }
            

我的目标是从缓冲区中减去前 3 个字符“43” 这就是我连续得到的

3 - p:43 01 33 03 01 00 00 
>
31 - size of p : 23
32 - p:43 01 33 03 01 00 00 
>
33 - size of p : 23

我应该如何从缓冲区中减去第一个“43”?

谢谢

【问题讨论】:

    标签: arduino esp32 arduino-esp32


    【解决方案1】:

    如果你只是给缓冲区指针添加一个偏移量,那么你就有效了跳过三个字符,你应该没问题:

    if (receive(buffer, sizeof(buffer)) > 0) {
        char *p = buffer+3;
        Serial.print("3 - p:");
        Serial.println(p);
    }
    

    这应该打印

    3 - p:01 33 03 01 00 00
    

    这是你想要的吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      相关资源
      最近更新 更多