串口数据解析(c语言)

2023-05-16

/**
  * @brief  从一段字符串中解析期望的字符串
  * @param  pBuff: 要解析的字符串地址
  * @param  pLeft: 目标字符串左边的字符串
  * @param  pRight: 目标字符串右边的字符串
  * @param  pRes: 接收字符数据的地址
  * @retval 1:成功 0:失败
  */
BOOL xDataParsingChar(const char *pBuff, const char *pLeft, const char *pRight,char *pRes)
{
    char *pBegin = NULL;
    char *pEnd = NULL;

    pBegin = strstr ( pBuff, pLeft );
    pEnd = strstr ( pBegin + strlen ( pLeft ), pRight );
    if ( pEnd == NULL || pBegin == NULL || pBegin > pEnd )  
    {
        return 0;
    } 
    else 
    {
        pBegin += strlen( pLeft );
        memcpy ( pRes, pBegin, pEnd - pBegin );
        return 1;
    }
}

以上适用于纯字符串解析,不适用字符串和数字混合(数字中会包含0,strstr碰到0会认为字符串结束 )。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

串口数据解析(c语言) 的相关文章

  • makefile 语法 /usr/bin/ld: cannot find -lxxxx

    GCC编译错误 1 usr bin ld tmp ccd UkmoA o undefined reference to symbol ERR free strings 64 OPENSSL 1 0 0 lib i386 linux gnu
  • AD10 PCB文件统一设置字体大小(默认字体大小)

    这个网上给我的提示 xff08 http zhidao baidu com link url 61 UNxy0GoaU7jj0QRgCikKIdHIrE7C FOiojG 5nE6a QBqXVuYdublOROizQyNRtfNudH53
  • Cocos2d-x初入学堂(13)-->Tiled Map Editor地图编辑器

    欢迎转载 xff01 转载时请注明出处 xff1a http blog csdn net aa4790139 article details 8135831 我开发的游戏只有第一款游戏 xff0c 没有用到地图编辑器 xff0c 那是我刚进
  • Linux 常用命令脚本源码查看方法总结

    Linux 常用命令脚本源码查看方法总结 下载相关软件包 以32位Ubuntu14 04下 xff0c 获取ls命令的源码为例 xff0c 能够使用例如以下的方法下载源码 xff1a 1 xff09 使用which命令查看ls命令的位置 x
  • 进程和线程的区别与联系

    1 共同点 功能上都是用于实现多任务并发程序设计的技术手段 xff0c 线程的状态包括就绪 执行与阻塞 xff0c 与进程类似 从系统实现的角度看 xff0c 进程实体和线程实体在Linux内核中都是有task struct实现的 xff0
  • AD9的pcb 里面怎样才能从TOP层视图换成从BOTTOM层网上面看,相当于把板子翻过来看

    AD9中更改PCB的视角 切换到3D xff08 view gt switch To 3D xff09 视图 xff0c 然后点击 view gt Orthogonal Rotation 然后在切换到2D视图 xff08 view gt s
  • opencv中三种像素访问方式的运行速度比较

    本文目的 xff1a 在opencv中有三种方式可以读写图像的像素 xff0c 分别为 xff1a 指针读写 迭代器读写 动态地址计算读写 虽然三种方式都可以完成同样的目的 xff0c 但是运行速度却有快有慢 xff0c 尤其是在实现一些复
  • 如何确认系统是采用大端还是小端

    如何确认系统是采用大端还是小端 1 大小端 大端 xff08 存储 xff09 模式 xff1a 是指一个数据的低位字节序的内容放在高地址处 xff0c 高位字节序存的内容放在低地址处 如 xff1a 一个数0x12345678存放在一个4
  • C++ Primer Plus 第六版 所有章节课后编程练习答案

    我的独立博客地址 xff1a www blog4jimmy com xff0c 欢迎大家关注 下面的是C 43 43 Primer Plus 第六版所有章节的课后编程练习的答案 xff0c 都是博主自己写的 xff0c 有不对的地方请大家留
  • 串口发送大数组

    用stm32f4XX发送采集到的数据时 xff0c 如果数据量特别大 xff0c 直接发送一个大数组可能比较占内存 这时候 xff0c 可以逐个发送数据 最好将大数组定义为全局变量 定义在函数内时 xff0c 可能导致栈不够深而报错 其模式
  • IP数据包校验过程

    1 算法思路 xff1a IP ICMP IGMP TCP UDP等协议的校验和算法都是相同的 xff0c 算法如下 xff1a 在发送数据时 xff0c 为了计算IP数据包的校验和 应该按如下步骤 xff1a xff08 1 xff09
  • CMake 和makefile

    1 gcc 它是GNU Compiler Collection xff08 就是GNU编译器套件 xff09 xff0c 也可以简单认为是编译器 xff0c 它可以编译很多种编程语言 xff08 括C C 43 43 Objective C
  • ROS CMakeLists中target_link_libraries相对路径设置

    希望大家收藏 xff1a 本文更新地址 xff1a https haoqchen site 2018 04 26 CMakeLists setting relative path 左侧专栏还在更新其他ROS实用技巧哦 xff0c 关注一波
  • AD10 复制问题(复制方法和智能粘贴 拼版)

    ad10PCB复制不成功 频繁的遇到过在PCB界面复制不成功的情况 xff0c 今天终于搞明白了是什么原因造成的 当我们选中元件的时候 xff0c 鼠标箭头就会有一个十字架的形状 xff0c 这时候直接按下CTRL 43 C然后再在其他的地
  • Postman中文版,竟如此简单,秒变中文

    好多小伙伴 xff0c 尤其是刚入门软件测试的 xff0c 对英文版本的Postman很抵触 xff0c 希望有个中文版的 xff0c 不过很遗憾的是Postman只有英文版本 xff0c 但凡事都有例外 xff0c 某天在逛github的
  • Http协议报文格式

    一 整体介绍 Http协议在传输层基于TCP协议 xff0c 在Http1 1之前每次请求在TCP层都需进行一轮连接和释放 xff08 三次握手 四次握手 xff09 xff0c 从Http1 1开始默认使用长连接 Http报文分为两种 x
  • 记录一次json_decode 返回NULL解决过程

    后台返回数据 xff0c 前端收到数据之后 xff0c 在调用json decode 之后 xff0c 返回null 用json last error 报错 3 在解码前 xff0c 对字符串进行处理 data 61 preg replac
  • mybatis-plus之saveBatch开启批量插入

    背景 MyBatis Puls的saveBatch默认并没有批量添加 xff0c 实际上在插入的时候仍然是一条条记录的插 开启 在jdbc的url连接参数中添加 rewriteBatchedStatements 61 true
  • PHP 之 问题记录一

    临时设置时区 date default timezone set 39 PRC 39 获取当前毫秒数 span class token comment 1670834581421 span span class token keyword

随机推荐