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;
    
    }
  • 相关阅读:
    C#获取EF实体对象或自定义属性类的字段名称和值
    Android 短信广播接收相关问题
    Silverlight5 Tools安装失败及解决方案
    验证码刷新
    Silverlight动态生成控件实例
    spring 属性注入
    asp.net XMLHttpRequest 进度条以及lengthComputable always false的解决办法
    Spring.Net 初探之牛刀小试
    iframe载入页面过程显示动画效果
    一次让人晕到吐血的接包经历
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11604862.html
Copyright © 2011-2022 走看看