zoukankan      html  css  js  c++  java
  • 字符串的规范使用(二)

    键值对(”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
    ");
            return iRet;
        }
    
        i = 0;
        j = strlen(tempIn) - 1;
    
        while(isspace(tempIn[i]) && tempIn[i] != '')
        {
            i++;
        }
        while(isspace(tempIn[j]) && tempIn[j] != '')
        {
            j--;
        }
    
        while(i <= j)
        {
            out[k++] = tempIn[i++];
        }
    
        out[k] = '';
        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 
    ");
            return iRet;
        }
    
        str = strstr(keyandvalue,key);
        if(str == NULL)
        {
            printf("strstr err 
    ");
            return iRet;
        }
    
        str = str + strlen(key);
        
        str = strstr(str,"=");
        if(NULL == str)
        {
            printf("strstr(str,"=") error
    ");
            return iRet;
        }
    
        str = str + strlen("=");
    
        iRet = trimSpace(str,value);
        if(iRet != 0)
        {
            printf("trimSpace error
    ");
            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
    ",value);
        return 0;
    
    }
  • 相关阅读:
    利用相关的Aware接口
    java 值传递和引用传递。
    权限控制框架Spring Security 和Shiro 的总结
    优秀代码养成
    Servlet 基础知识
    leetcode 501. Find Mode in Binary Search Tree
    leetcode 530. Minimum Absolute Difference in BST
    leetcode 543. Diameter of Binary Tree
    leetcode 551. Student Attendance Record I
    leetcode 563. Binary Tree Tilt
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11604862.html
Copyright © 2011-2022 走看看