题目:
键值对(”key = valude”)字符串,在开发中经常使用;
要求1:请自己定义一个接口,实现根据key获取valude;40分
要求2:编写测试用例。30分
要求3:键值对中间可能有n多空格,请去除空格30分
注意:键值对字符串格式可能如下:
“key1 = value1”
“key2 =       value2“          
“key3  = value3” 
“key4        = value4” 
“key5   =   value5“
“key6   =value6“

“key7   =   value7“

//头文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
//处理函数
int getKeyByValude(char *keyvaluebuf,  char *keybuf,  char *valuebuf, int * valuebuflen)
{int i=0,j=0;//循环变量char *p;//指向第一个字符int count=0;//value的长度int len=0;assert(keyvaluebuf!=NULL);p=strstr(keyvaluebuf,keybuf);//找到keyif (p==NULL){return 0;}p=strchr(p,'=');p=p+1;//指针p指向“=”后面的字符len=strlen(p);j=i+len-1;while (isspace(p[i])&&p[i]!='\0')    {i++;}while (isspace(p[j])&&j>0)//p指向value的尾字符{j--;}count=j-i+1;memcpy(valuebuf,p+i,count);valuebuf[count]='\0';*valuebuflen=count;return 1;
}//测试
int main()
{char buf1[20];char buf2[20];char buf3[20];int len1,len2,len3;char *p1="key1 = valuddsddsde1  ";char *p2="key2 =    valu8";char *p3="key3   =  valud 9dsde1 ";if(getKeyByValude(p1, "key1", buf1, &len1)){printf("原字符串:%s,目标字符串:%s, 长度:%d\n",p1,buf1,len1);}if (getKeyByValude(p2, "key2", buf2, &len2)){printf("原字符串:%s,目标字符串:%s, 长度:%d\n",p2,buf2,len2);}if (getKeyByValude(p3, "key3", buf3, &len3)){printf("原字符串:%s,目标字符串:%s, 长度:%d\n",p3,buf3,len3);}return 0;
}

【字符串】面试题之键值对(”key = valude”)字符串相关推荐

  1. hash表--c语言 字符串键值配对——(key, value)

    c语言键值配对--(key, value) 看一个C++项目时,其中解析配置文的部分引发了我的思考. 配置文件问普通字符文件,内容都是类似 如下: ipaddr=127.0.0.1 port=888 ...

  2. 键值的 key 和 value 允许为null吗

       总结: HashMap对象的key.value值均可为null. HahTable对象的key.value值均不可为null.        两者的的key值均不能重复,若添加key相同的键值对 ...

  3. python遍历字典键值做变量名 字符串做变量名

    目录 1. exec 2. vars() 3. 全局变量globals() 感谢! [简书]Python中如何将字符串作为变量名 1. exec exec执行字符串命令.目前var和globals都不 ...

  4. C语言以字符串为索引求数组值,C05 C语言字符串和数组

    目录 数组 字符串 数组 概念 数组是有序数据的集合. 数组中的每一个元素属于同一个数据类型. 通过数组名和下标唯一确定数组中的元素. 一维数组的定义 语法格式 数据类型   数组名[常量表达式] 例 ...

  5. Redis中字符串string数据类型(保存(设置键值、过期时间、设置多个键值、追加值)、获取(获取单一键值、获取多个键值))

    字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型的V ...

  6. 图片base64转码,本地和网络图片均可,类对象转map,类对象转键值对字符串

     1. 本地图片转换成base64 /*** 本地图片转换成base64字符串** @param imgFile 图片本地路径* @return base64字符串* @author szs* @da ...

  7. 通过Value获取Map中的键值Key的四种方法

    1 简介 我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值.然而,有的时候我们需要反过来获取,知道Value ...

  8. React学习(3)——列表、键值与表单

    为什么80%的码农都做不了架构师?>>>    本文记录了在官网学习如何使用JSX+ES6开发React的过程. . 全文共分为3篇内容: JSX语法与React组件 状态.事件与动 ...

  9. php 两个数组键名比较,php array_intersect_assoc 比较两个数组的键名和键值,并返回交集...

    先来看一下array_intersect_assoc函数的语法 array array_intersect_assoc ( array $array1 , array $array2 [, array ...

最新文章

  1. ASP.Net面向对象思想
  2. 无线网络国际会议排名(zz)
  3. 算法相关(2)-单向链表
  4. Promise之异步调用
  5. 如何在matlab里输入复杂公式_在MATLAB作图中输出漂亮的公式
  6. 案例分享丨红外自动感应门设计与实现详解
  7. mysql group 索引失效_介绍mysql索引失效的情况
  8. pandas小记:pandas数据规整化-缺失、冗余、替换
  9. caffe的python接口学习(4):mnist实例---手写数字识别
  10. 如何在csdn写博客
  11. 如何来优化招聘类网站-SEO教学
  12. 受移动竞争所致,联通的宽带用户大跌,电信将面临同样遭遇
  13. linux/debian安装wps以及缺失字体,亲测可用
  14. 小米发布会的米8探索者——很吓人的技术分析
  15. 基于Django框架的网络选课管理系统
  16. HTTP GET 请求在请求体中带参数的问题
  17. 同步多个 git 远程仓库
  18. LabVIEW32位和64位的兼容性
  19. 微信小程序自定义编译模式
  20. 【C语言/C++程序员编程】一小时做出来的数字雨(一颗开花的树)!

热门文章

  1. 蓝桥2021模拟真题 (跳跃 )DFS
  2. [Python] * 和 ** 的用法
  3. jquery中select操作append、prepend、remove、find、val、get、selectedIndex、attr、option
  4. 图像处理十:图像反色
  5. 贺利坚老师汇编课程36笔记:[BX+SI+IDATA]和[BX+DI+IDATA]寻址
  6. 在 Azure Web 应用中创建 PHP 应用程序
  7. 基于遗传算法的高校排课系统研究
  8. petri网学习笔记--stochastic petri net分类
  9. Sql 语句:显示 Sql Server 中所有表中的信息
  10. [转载] python+opencv图像处理:numpy数组操作