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;
    
    }
  • 相关阅读:
    libubox组件(1)——usock
    linux 块设备驱动(五)——块设备应用层的操作
    linux 块设备驱动(四)——简单的sbull实例
    linux 块设备驱动 (三)块设备驱动开发
    linux 块设备驱动(二)——块设备数据结构
    CUDA:零拷贝主机内存
    《无法触碰》
    CUDA: 流
    CUDA: 原子操作
    CUDA:纹理内存
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11604862.html
Copyright © 2011-2022 走看看