键值对
键值对(“key = valude”)字符串,在开发中经常使用;
要求1:请自定义一个接口,实现根据key获取valude;
要求2:编写测试用例;
要求3:键值对中间可能有n个空格,请去除空格。
注意:键值对字符串格式可能如下:
"key1 = valude1 "
"key2 = valude2 "
"key3 = valude3 "
"key4 = valude4 "
"key5 = valude5 "
//1. 查找key是不是在母串中
//2. 看有没有 = 号
//3. 在等号后面 去除空格
指针做函数参数,并返回函数值
/* 键值对(“key = valude”)字符串,在开发中经常使用; 要求1:请自定义一个接口,实现根据key获取valude; 要求2:编写测试用例; 要求3:键值对中间可能有n个空格,请去除空格。 注意:键值对字符串格式可能如下: "key1 = valude1 " "key2 = valude2 " "key3 = valude3 " "key4 = valude4 " "key5 = valude5 " */ #include <stdio.h> #include <string.h> #include <ctype.h> #include <stdlib.h> int trimSpace9(char *str, char *newstr) { char *p = str; int ncount = 0; int i, j = 0; if(str == NULL ||newstr == NULL) { printf("func trimSpace() err "); return -1; } i = 0; j = strlen(p)-1; while(isspace(p[i]) && p[i] != '\0') { i++; } while(isspace(p[j]) && p[j] != '\0') { j--; } ncount = j - i + 1; strncpy(newstr, str+i, ncount); newstr[ncount] = '\0'; return 0; } int getKeyByValude(char *keyvaluebuf, char *keybuf, char *valuebuf) { int ret = 0; char *p = NULL; if(keyvaluebuf == NULL || keybuf == NULL || valuebuf == NULL) { printf("func getKeyByValude() err"); return -1; } //1. 查找key是不是在母串中 p = keyvaluebuf; p = strstr(p, keybuf); if(p == NULL) { return -1; } //让辅助指针变量 重新初始化 p = p + strlen(keybuf); //2. 看有没有 = 号 p = strstr(p, "="); if(p == NULL) { return -1; } //让辅助指针变量 重新初始化 p = p + strlen("="); //3. 在等号后面 去除空格 ret= trimSpace9(p, valuebuf); if(ret != 0) { printf("func trimSpace() err %d", ret); return ret; } return ret; } int main(void) { int ret = 0; char buf[1024] = {0}; int buflen = 0; char *keyAndvalue = "key5 = valude5 "; char *key = "key5"; ret = getKeyByValude(keyAndvalue, key, buf); if(ret != 0) { printf("func getKeyByValude() err %d", ret); return ret; } printf("buf: %s", buf); return ret; }
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并,获取更多隐藏干货,QQ交流群:859800032 微信公众号:Crystal软件学堂
|
作者:Liu_Jing bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |

浙公网安备 33010602011771号