键值对是什么?

一、键值对问题:

键值对(“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, 报告出错

图四

  • 47
    点赞
  • 180
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值