C语言提取(key,value)键值对

2023-11-15

#include "stdio.h"
#include "stdlib.h"
#include "string.h"


/*去除空格*/
int trim_str(char* inBuf, char *outBuf)
{
int i = 0, j = strlen(inBuf) - 1;
int ret = 0;
if (!inBuf || !outBuf)
{
ret = -1;
printf("func trim_str(char* inBuf,char *outBuf) err:%d,parameter is NULL\n", ret);
return -1;
}
char* in = inBuf;
while (isspace(in[i]) && in[i] != '\0')
{
i++;
}
while (isspace(in[i]) && j>0)
{
j--;
}
memcpy(outBuf, in + i, j - i + 1);
outBuf[j - i + 1] = '\0';
return 1;
}
/*
int getKeyByValude(char *keyvaluebuf,  char *keybuf,  char *valuebuf, int * valuebuflen);
int main()
{
getKeyByValude(“key1 = valude1”, ” key1”, buf, &len);
}


*/
int getKeyByValude(char *keyvaluebuf, char *keybuf, char *valuebuf, int * valuebuflen)
{
int rv = 0;
char *key = NULL;
char tmp[2048 * 10];
/*1.查找关键字 key*/
//没有查询到 key
key = strstr(keyvaluebuf, keybuf);
if (!key)
{
return 0;
}
key += strlen(keybuf);


/*2.查找=*/
key = strstr(keyvaluebuf, "=");
//没有查询到 key
if (!key)
{
return 0;
}
key += 1;


/*3.去除空格*/
rv = trim_str(key, tmp);
if (rv != 1)
{
printf("func trimSpace_ok2() err:%d\n", rv);
return rv;
}
strcpy(valuebuf, tmp);
*valuebuflen = strlen(valuebuf);
return 1;
}
int main()
{
int rv = 0;
char str[100] = "   password = admin  ";
char key[100] = "password";
char value[100] = { 0 };
int length = 0;
rv = getKeyByValude(str, key, value, &length);
printf("key = %s,value = %s\n", key, value);
printf("length = %d\n", length);
//printf("hello world!\n");
system("pause");
return 0;
}

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

C语言提取(key,value)键值对 的相关文章

  • 热门的四款RK3399系列板卡产品大PK-谁是当家花旦?

    热门的四款RK3399系列板卡产品大PK 谁是当家花旦 大家好 我是资深嵌入式爱好者老李 今天来给大家推荐市场上六款 性能超凡 的RK3399板子 哪一款是当家花旦 你最喜爱哪一款 欢迎留言 主控芯片 Rockchip RK3399 CPU
  • 转: angularjs学习总结(~~很详细的教程)

    1 前言 前端技术的发展是如此之快 各种优秀技术 优秀框架的出现简直让人目不暇接 紧跟时代潮流 学习掌握新知识自然是不敢怠慢 AngularJS是google在维护 其在国外已经十分火热 可是国内的使用情况却有不小的差距 参考文献 网络文章
  • 运算符之比较运算符和逻辑运算符

    1 比较运算符 是两个数据之间进行比较的运算 运算结果都是布尔值true和false 赋值运算符包括 比较符号两边数据是否相等 相等结果是true lt 比较符号左边的数据是否小于右边的数据 如果小于结果是true gt 比较符号左边的数据
  • method:com.alibaba.druid.pool.DruidAbstractDataSource.testConnectionInternal问题解决

    目录 1 问题复现 2 问题分析 3 解决问题 如何禁用 Ping Method 4 禁用 Ping Method的后果 5 两者之间的权宜之计 1 问题复现 ERROR 2023 07 23 18 03 03 427 method com
  • 为什么postman调接口不会跨域而浏览器会

    为什么postman调接口不会跨域而浏览器会 都在说跨域 为什么postman能访问接口 而浏览器就不行呢 这里需要理解什么是跨域 跨域是指的当前资源访问其他资源时发起的http请求由于安全原因 由于同源策略 域名 协议 端口中只要有一个不
  • SpringCloud组件之Gateway网关详细教程

    目录 一 概念 1 1 什么是微服务网关 1 2 为什么需要使用网关 网关的作用 1 3网关的好处 二 Gateway网关的快速入门 1 快速创建 2 网关路由的流程 3 Gateway断言工厂 predicates 4 gateway过滤
  • Java与Native相互调用示例及讲解

    一 背景 今天介绍如何在层通过jni调用native方法 同时native层如何回调java方法 二 java层实现 TestNative java public class TestNative static 加载native层源码编译得
  • 二叉树 二度节点和叶子节点之间的数量关系

    结论 二叉树中度数为2的节点数量比叶子节点少一个 证明 设0度节点 叶子节点 一度节点 二度节点数量分别为n0 n1 n2 那么总的点数为n n0 n1 n2 而边的数量为m n 1 树的性质 同时又有m 2 n2 1 n1 0 n0 所以
  • arm NEON学习

    目录 0 rgb2gray函数 1 累加和 2 两个数组相关映射元素的乘积和 3 矩阵乘法 参考 arm NEON简介 快速上手指南 清晰的简介 参考手册 SIMD 一条指令处理多个数据 在32bit内核处理器上 如cortexA系列 如果
  • 融云服务器实时消息路由,融云开发者文档

    融云 IM 聊天室中是否包含视频流 IMLib 聊天室中不包含视频直播 包含与 IM 相关功能 如消息发送 聊天室控制等 视频直播视频流的录制 播放可使用融云 RTC SDK 低延时直播 聊天室如何销毁 销毁方式有两种 1 主动调用融云 S
  • 数据类型(初学者的一点经验)

    数据类型 char 字符类型 1字节 short 短整型 2字节 int 整形 4字节 long 长整形 4或8字节 long long 更长整形 没有三个以上的long组成的 8字节 float 单精度浮点数 4字节 double 双精度
  • linux驱动模块的加载和卸载

    Linux 驱动有两种运行方式 第一种就是将驱动编译进 Linux 内核中 这样当 Linux 内核启动的时候就会自动运行驱动程序 第二种就是将驱动编译成模块 Linux 下模块扩展名为 ko 在Linux 内核启动以后使用 insmod
  • 【以太网硬件三】1000base-T和1000base-TX有什么区别?

    个人主页 highman110 作者简介 一名硬件工程师 持续学习 不断记录 保持思考 输出干货内容 从以太网的发展历程我们知道 以太网接口速率越来越高 传输距离越来越远 编码方式在不断变化发展 诞生了各种各样的以太网物理接口类型 我们先按
  • C++ 实现string字符串替换全部子串

    函数说明 对字符串中所有指定的子串进行替换 参数 string resource str 源字符串 string sub str 被替换子串 string new str 替换子串 返回值 string string subreplace
  • 记录自己激光打眼手术过程

    本人近视500度 其中300多度近视 100多度的散光 想毕业去应征入伍 所以想去做激光手术 在学校初检的医院做了激光打眼前的检查 发现角膜地形图不正常 被告知不能做 要观察半年后才能去做 我又去了JN附属医院做了检查发现还是地形图不正常
  • Ubuntu linux Androidstudio 卡死 杀死进程

    打开任务管理器 方法一 系统搜索 system monitor 如图 打开系统监视器 方法二 打开终端输入 gnome system monitor 打开系统监视器后 注意 androidstudio 对应的进程是java 在监视其中找到J
  • CTF—WEB基础篇

    01 HTML 文本标记语言 标题 h1 这是一个标题 h1 h2 这是一个标题 h2 h3 这是一个标题 h3 复制 段落 p 这是一个段落 p p 这是另外一个段落 p 复制 链接 a href URL 这是一个链接 a 复制 图像 i

随机推荐

  • 【Unity3D】XR: OpenVR Error! OpenVR failed initialization解决方案

    2019年12月2日 0次阅读 共213个字 0条评论 0人点赞 QueenDekimZ Console报错 XR OpenVR Error OpenVR failed initialization with error code VRIn
  • 游戏开发unity xlua框架知识系列:vscode 识别非.lua后缀的代码文件

    插眼 总结 setting json中进行配置 参考 https blog csdn net iway lch article details 91364825
  • 数据库查询语句遇到:Unknown column 'XXXX' in 'where clause'解决方法

    数据库查询语句遇到 Unknown column XXXX in where clause 解决方法 根本原因 可能是sql语句所用到的数据类型错误 int与String 弄错 我的情况 在网页其中的jsp页面接收html页面传来的cssn
  • vue3+vite3+vant搭建移动端简易模版

    前言 vue3 x相关的生态已经在不断的完善中 相应的UI 路由 pinia等都已成熟 新的项目也在考虑使用新版本开发了 开一个帖子记录一下搭建移动端简易模版的过程 方便以后回顾 vite前端构建工具 兼容性注意 Vite 需要 Node
  • 数据结构单向链表的C++实现

    本文的链表实现使用的是c 的类模板 构造节点类模板Node
  • 打卡格式

    2019 X xx Chen70
  • 还只看花书,西瓜书?一文告诉你如何正确学习深度学习,从理论到实战。

    如今春招已接近尾声 大家都知道今年就业形势整体不乐观 不仅应聘人数远远大于招聘岗位 而且面试难度加大 想拿到理想的offer更是难上加难 这段时间 很多人都在自我充电 我也经常在后台给读者解答很多深度学习相关问题 但大家问的更多的却是一些非
  • 如何查看文件的MD5值?

    MD5 什么是MD5 md5是一种信息摘要算法 是计算机广泛使用的杂凑算法之一 又译摘要算法 哈希算法 它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串 这个特殊的字符串就被称之为摘要 我理解就是从文件中摘一些信息片段加工而
  • R语言colorRampPalette函数-创建颜色梯度(渐变色)

    在绘热图时 需要将数值映射到不同的颜色上 这时就需要一系列的颜色梯度 colorRampPalette 函数支持自定义的创建一系列的颜色梯度 代码示例 gt colors lt colorRampPalette c blue red 5 g
  • windows加固-服务安全

    禁用TCP IP上的NetBIOS NETBIOS 在安装了TCP IP协议的同时 NetBIOS也会被作为默认设置安装到系统中 NetBIOS 协议所使用的端 是139端口 139 端 的开放意味硬盘可能会在网络中共享 网上黑客也可通Ne
  • 网络地址转换的类型及特点

    1 网络地址转换的类型及特点 NAT有三种类型 静态NAT StaticNAT 动态地址NAT PooledNAT 网络地址端口转换NAPT Port LevelNAT 静态NAT 指将内部网络的私有IP地址转换为公有IP地址 IP地址对是
  • On Distillation of Guided Diffusion Models

    本论文是解决什么问题的 无分类器引导扩散模型最近被证明在高分辨率图像生成方面非常有效 无分类器的引导扩散模型的缺点是 它们在推理时计算昂贵 原因是 因为它们需要评估两个扩散模型 一个类条件模型和一个无条件模型 数十到数百次 这篇论文提出的解
  • Linux Ubuntu安装教程

    1 创建新的虚拟机 2 选择 典型 点击 下一步 3 选择 稍后安装操作系统 点击 下一步 4 选择 Linux 版本选择 ubuntu 64位 点击 下一步 5 虚拟机名称输入 ubuntu 64位 点击 浏览 更改系统的安装位置 建议安
  • MySQL基础命令学习

    MySQL安装请看上一篇MySQL server安装记录 进入到数据库管理系统 DBMS C Windows System32 gt cd D mysql 8 0 22 winx64 bin D mysql 8 0 22 winx64 bi
  • Web自动化测试(5)-POM

    POM设计模式 目录 POM设计模式 1 简介 2 简单示例 3 UnitTest框架测试用例执行顺序 4 数据驱动 5 简单示例 1 简介 POM Page Object Model 设计模式又被称为页面对象模型 其核心思想是将web项目
  • 面向小白的最全Python可视化教程,超全的

    今天小编总结归纳了若干个常用的可视化图表 并且通过调用plotly matplotlib altair bokeh和seaborn等模块来分别绘制这些常用的可视化图表 最后无论是绘制可视化的代码 还是会指出来的结果都会通过调用streaml
  • Vue3全网最细介绍使用

    文章目录 一 Vue3介绍 二 Vue3项目创建 三 Setup 四 ref与reactive 五 setup context 六 计算属性 七 监听属性 八 Vue3生命周期 九 自定义hook函数 十 toRef 一 Vue3介绍 1
  • 思科命令配置总结

    Packet tracer 6 0 交换机命令配置 1 基本配置 Switch gt enable 用户模式 Switch configure terminal 特权模式 Switch config 全局模式 Switch config h
  • SDN-Mininet模拟多数据中心带宽实验

    一 实验目的 通过Mininet模拟搭建基于不同数据中心的网络拓扑 掌握多数据中心网络拓扑的构建 熟悉网络性能测试工具lperf 根据实验测试SDN网络的性能 通过程序生成真实网络流量 二 数据中心拓扑逻辑网络 存在线路冗余 多条链路可达
  • C语言提取(key,value)键值对

    include stdio h include stdlib h include string h 去除空格 int trim str char inBuf char outBuf int i 0 j strlen inBuf 1 int