键值对(”key = valude”)字符串,在开发中经常使用;
要求1:请自己定义一个接口,实现根据key获取valude;40分
要求2:编写测试用例。30分
要求3:键值对中间可能有n多空格,请去除空格30分
注意:键值对字符串格式可能如下:
“key1 = valude1”
“key2 = valude2
“key3 = valude3”
“key4 = valude4”
“key5 = “
“key6 =“
“key7 = “
int getKeyByValude(char *keyvaluebuf, char *keybuf, char *valuebuf);
/*** keyandvalue.c ***/ #include<stdio.h> #include<string.h>int trimSpace(char *in,char *out) {int iRet = -1;int i = 0;int j = 0;int k = 0;char *tempIn = in;if(in == NULL || out == NULL){printf("NULL is error\n");return iRet;}i = 0;j = strlen(tempIn) - 1;while(isspace(tempIn[i]) && tempIn[i] != '\0'){i++;}while(isspace(tempIn[j]) && tempIn[j] != '\0'){j--;}while(i <= j){out[k++] = tempIn[i++];}out[k] = '\0';iRet = 0;return iRet; }int getValuebyKey(const char *keyandvalue, const char *key, char *value) {int iRet = -1;char *str = keyandvalue;if(keyandvalue == NULL || key == NULL || value == NULL){printf("Point is NULL \n");return iRet;}str = strstr(keyandvalue,key);if(str == NULL){printf("strstr err \n");return iRet;}str = str + strlen(key);str = strstr(str,"=");if(NULL == str){printf("strstr(str,\"=\") error\n");return iRet;}str = str + strlen("=");iRet = trimSpace(str,value);if(iRet != 0){printf("trimSpace error\n");return iRet;}return iRet; }int main() {int iRet = 0;char *key = "key";char *keyvalue = "key = value ";char value[256];int len = 0;iRet = getValuebyKey(keyvalue,key,value);printf("value = %s\n",value);return 0;}