键值对是什么?

article/2025/8/27 12:39:09

一、键值对问题:

键值对(“key = value”),顾名思义,每一个键会对应一个值。

二、举个例子

  • 身份证号和你本人的绑定关系,在系统中输入身份证号(键)都会对应一个小可爱(值)。
  • 咱在登陆微信、游戏或外卖账号时,需要输入手机号验证身份,这时,系统会向该手机号发送一条验证短信。这里的手机号码(键),对应的接收用户就是“值”。
    每个键对应着相应的值, 当按下相应的键时, 就会输出相应的结果,那么如何用程序实现呢?

三、代码实例:

(1)编写一个函数,利用函数实现功能,给出接口,主调函数调用;
(2)函数思想:
1、在字符串中查找是否含有关键字
2、再查找是否含有“=”
3、去掉值中的首尾空格

四、程序实现:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>//一般情况下不要修改输入的内存块的值
int trimSpace_ok2(char *mybuf, char *outbuf)//去掉首尾空格函数
{int count = 0;int i = 0, j = 0;char *p = mybuf;j = strlen(p) -1;while (p[i]==' ' && p[i] != '\0'){i++;}while (p[j]==' '&& j>0){j--;}count = j-i +1;memcpy(outbuf, mybuf+i, count);outbuf[count] = '\0';return 0;
}int getKeyByValude(char *keyvaluebuf,  char *keybuf,  char *valuebuf, int * valuebuflen)
{char tmp[2048*10];//开辟足够的内存空间,用于存放int ret=0;char *p=keyvaluebuf;
if(keyvaluebuf==NULL||keybuf==NULL||valuebuf==NULL||valuebuflen==NULL){ret=-1;return ret;}//第一步:在字符串中查找是否含有关键字p=strstr(keyvaluebuf,keybuf);if(p==NULL){return -1;}p=p+strlen(keybuf);//第二步:查找是否含有=p=strstr(keyvaluebuf,"=");if(p==NULL){return -1;}p=p+1;第三步:去掉首尾的空格字符串;ret = trimSpace_ok2(p, tmp);//调用函数实现if (ret!= 0){printf("func trimSpace_ok2() err:%d\n", ret);return ret;}strcpy(valuebuf, tmp);*valuebuflen = strlen(tmp);return 0;
}void main()
{int ret=0;//char value1[]="ORACLE_name="itcast";/*测试1 *//*char value1[]="oracle_pwd=123456        ";*//*测试2 */char value1[]="oracle_pwd=        231256";/*测试3*/char value1[]="orace_pwd=        231256";/*测试4*///char key1[]="ORACLE_name";/*测试1的关键字 *///char key1[]="oracle_pwd";/*测试2 的关键字*/char key1[]="oracle_pwd";/*测试3的关键字*/ char buf[100]={0};//必须初始化int len=0;ret =getKeyByValude(value1,key1, buf, &len);if(ret!=0){printf("func getKeyByValude() err ,ret=%d\n",ret);}printf("buf=%s\n",buf);printf("len =%d\n",len);getKeyByValude(value1,key1, buf, &len);system("pause");
}

五、测试结果:

<1>“ORACLE_name=itcast” “ORACLE_name” itcast

图一
<2>“oracle_pwd=123456” “oracle_pwd” 123456
图二
<3>“oracle_pwd= 231256” “oracle_pwd” 231256
图三
<4>orace_pwd= 231256, 报告出错

图四


http://chatgpt.dhexx.cn/article/Smuj9F3v.shtml

相关文章

键值对

感谢传智播客C语言视频教程对作者的帮助。 一、键值对问题 1、什么是键值对 举个简单的例子&#xff0c;电话簿中&#xff0c;键&#xff1a;小马、值&#xff1a;18753137777。是一种简单的对应关系。 2、代码举例 键值对&#xff08;“key value”&#xff09;字符串&a…

MBR、EBR、OBR的区别和联系

先看图&#xff1a; 一块硬盘&#xff0c;最开始只能实现4个分区&#xff0c;也就是4个主分区。 后来的发展&#xff0c;4个分区不够用了&#xff0c;可以有一个分区作为扩展分区&#xff0c;用它来作为总扩展分区&#xff0c;里面可以分成很多个子扩展分区&#xff0c;每个子…

MBR分区结构、DPT分区表、EBR扩展引导

本文链接&#xff1a;http://www.blogfshare.com/mbr-dpt-ebr.html 主引导记录&#xff08;Master Boot Record&#xff0c;缩写&#xff1a;MBR&#xff09;&#xff0c;又叫做主引导扇区&#xff0c;是计算机开机后访问硬盘时所必须要读取的首个扇区&#xff0c;它在硬盘上的…

C语言读取磁盘分区信息(MBR、DPT、EBR)

文章目录 简介使用的函数1.CreateFile()函数打开设备2.DeviceIoControl()函数返回磁盘设备信息3.SetFilePointer()函数设置读取磁盘信息位置4.ReadFile()函数读取磁盘内容 源代码结果分析MBR部分&#xff1a;第一个EBR的DPT内容为&#xff1a;第2个EBR内容 总结 简介 在win8以后…

使用Epoch-Based Reclamation(EBR,特定域回收的一种方法)修改 lazy-list

如前文所说&#xff0c;lazy-list最大的隐患莫过于逻辑删除&#xff0c;而没有物理删除问题&#xff0c;因此EBR首先就把这个问题给他solve了。 一.EBR修改部分 int parse_delete(intset_l_t *set, val_t val) {node_l_t *pred, *curr;int result, validated, isVal;while(1)…

淘宝电商搜索EBR算法笔记

淘宝电商搜索EBR算法笔记 - 知乎《Embedding-based Product Retrieval in Taobao Search》介绍了淘宝目前最新的EBR算法。仍然是一个双塔的结构&#xff0c;query/user一个塔&#xff0c;item一个塔&#xff0c;各自得到向量表示&#xff0c;然后计算内积。 网络结构如上图所示…

解决西门子ebr设备模块更新报错,EQP_STATEVALUE more than one row

问题排查报告 原文来至 问题跟踪 首先定位到EQP_STATEVALUE表&#xff0c;发现数据出现重复&#xff1a; 执行语句取出所有非重复数据&#xff1a; select t.stateid,t.fk_statelistcst,t.code,t.label,t.functionid,t.pk_id,t.dlu,t.dluunit,t.cpt,t.haseqpimpact from EQP…

机械臂关节模组制动相关(零差云控eBr)

目录 前言一、电磁插销式抱闸1.原理2.特点 二、电磁摩擦片式制动器1.原理2.特点 三、零差云控电磁摩擦片式制动器&#xff08;eBreaker&#xff09;1.简介2.使用说明需要注意的事情3.接线 总结参考文献 前言 现阶段机械臂的制动方法主要有两种&#xff0c;一种是电磁插销式抱闸…

西门子EBR与BATCH通讯方法,mes与batch交互

最新更新请访问&#xff1a;mesebr.com 链接 1 前期准备 1.1 网络检查 两台服务器防火墙全部关闭&#xff1b;两台服务器之间可以相互ping同&#xff0c;若batch服务器连接oracle数据库的连接名称写的机器名&#xff0c;则batch服务器ping机器名也要可以ping通&#xff1b; 1…

WinHex数据恢复笔记-数据恢复与硬件维护-MBR格式--MBR,EBR系统结构

MBR&#xff0c;EBR系统结构 MBR限制2TB&#xff0c;最多有4个逻辑分区—如果有扩展&#xff08;3个主分区和1个扩展分区&#xff09; FAT32不能在大于32GB的盘上添加 MBR指向第一个EBR 第一个EBR(以链表)指向第二个EBR(以链表)指向第二个EBR(以链表)… MBR MBR数据结构 4…

西门子MES软件ebr脚本使用说明-SIMATIC IT EBR(Opcenter Execution Pharma

最新更新发布在此处 ebr脚本常用函数 ###参数输入输出 输入的type选择tag value;输出的type选择tag NAME; 实例 mData.InsertData ousNAME,0,straaa 输出文本 mData.InsertData ousAGE,1,age 输出数字html直接输出 mRecordText.WriteHTML str_htmlr 可直接输出html内…

每周一文(六)Facebook EBR向量召回模型

契机 从样本和模型两方面来介绍向量级别召回模型的由来。提出很有建设性的工业级别的参考价值。 样本角度 有监督的二分类模型需要构建正负样本&#xff0c;正样本的选择不管是召回和排序来说都是一致的&#xff0c;即用户有显式的点击行为的样本为正样本。而对于召回模型(甚…

主引导记录(MBR)、硬盘分区表(DPT)、扩展引导记录(EBR)

前言 最近在研究使用grub引导自制操作系统时&#xff0c;发现grub链式引导过程中向boot传递的硬盘分区表表项数据有疑问&#xff0c;特此记录下。 一、主引导记录&#xff08;MBR&#xff09; MBR是存储在计算机硬盘的第一个物理扇区的512字节的数据块&#xff0c;它包含了引…

MES管理端介绍,ebr二次开发产品—SIMATIC IT EBR(Opcenter Execution Pharma)

原文来至&#xff1a;访问原文 西门子MES软件ebr功能很强大&#xff0c;但给用户若只想查看一些数据是非常不方便&#xff0c;对外接口提供的文档也不具体&#xff0c;所以我二次开发了EBR的管理端。 主要功能 权限管理物料管理工单管理族谱批记录查看报表与看板审计追踪记录 …

NTFS文件系统详解(二)MBR\EBR基本信息

NTFS文件系统详解&#xff08;二&#xff09;MBR\EBR基本信息 一、MBR结构分析1. 第一个分区表项2. 第二个分区表项3. 第三个分区表项4. 第四个分区表项 二、EBR结构分析1. 第一个分区表项2. 第二个分区表项2.1 第一个分区表项2.2 第二个分区表项2.3 第三个分区表项 NTFS文件系…

MBR、EBR与DBR详解

demo&#xff1a;https://github.com/Hilaver/NtfsResolution/ 先看一张硬盘图片&#xff08;一个盘面&#xff09;&#xff1a; MBR 主引导记录&#xff08;MBR&#xff0c;Main Boot Record&#xff09;是位于磁盘最前边的一段引导&#xff08;Loader&#xff09;代码。它负…

MBR、EBR、DBR是什么

通常情况下可以这样描述这几个概念&#xff1a; MBR&#xff1a;为计算机启动后从可启动介质上首先装入内存并且执行的代码&#xff0c;通常用来解释分区结构。以硬盘为例&#xff0c;通常为LBA的0扇区。 EBR:自MICROSOFT推出扩展分区的概念后&#xff0c;扩展分区就沿用了基本…

NTFS文件系统详解(二)之MBR(EBR)基本信息

经过上一篇文章对硬盘的基本结构的详细介绍后,我们再来看看MBR和EBR的结构 MBR(Main Boot Record 主引导记录区)位于整个硬盘的0磁道0柱面1扇区。不过,在总共512字节的主引导扇区中,MBR只占用了其中的446个字节,另外的64个字节交给了 DPT(Disk Partition Table硬盘分区表…

EBR内容解析

原先博客放弃使用,几篇文章搬运过来 EBR(Extended Boot Record)即扩展分区引导记录.类似于主引导记录MBR.因为MBR的四条分区信息的限制,可以使用EBR方便扩展. 它的结构与MBR类似于,但是没有引导程序和磁盘签名,仅仅保留了分区表和结束标志. 下面以实例分析: 新建一个512MB虚拟…

C++中常见的几种输入字符串的方法

C中常见的几种输入字符串的方法_是赵薰薰呀的博客-CSDN博客_c输入字符串 可以用的函数 substr substr有2种用法&#xff1a; 假设&#xff1a;string s "0123456789"; string sub1 s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾&#xff1a;sub1 &…