键值对是什么?

键值对是什么?

一、键值对问题:

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

二、举个例子

身份证号和你本人的绑定关系,在系统中输入身份证号(键)都会对应一个小可爱(值)。咱在登陆微信、游戏或外卖账号时,需要输入手机号验证身份,这时,系统会向该手机号发送一条验证短信。这里的手机号码(键),对应的接收用户就是“值”。

每个键对应着相应的值, 当按下相应的键时, 就会输出相应的结果,那么如何用程序实现呢?

三、代码实例:

(1)编写一个函数,利用函数实现功能,给出接口,主调函数调用;

(2)函数思想:

1、在字符串中查找是否含有关键字

2、再查找是否含有“=”

3、去掉值中的首尾空格

四、程序实现:

#include

#include

#include

//一般情况下不要修改输入的内存块的值

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, 报告出错

相关推荐