zoukankan      html  css  js  c++  java
  • C提高_day03_作业第三题

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h> 
    
    /*=======================================================================================
    键值对(”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, int * valuebuflen);
    int main()
    {
       getKeyByValude(“key1 = valude1”, ” key1”, buf, &len);
    }
    ==========================================================================================*/
    int trimSpace(char *str,char *newstr)
    {
        int ncount=0;
        int i=0,j=0;
        char *p=str;
        j=strlen(str)-1;
        if(str==NULL || newstr==NULL)
        {
            printf("fun trimSpace() 
    ");
            return -1;
        }
         
        while(isspace(p[i]) && p[i]!='')
        {
            i++;
        }
    
        while(isspace(p[j]) && p[j]!='')
        {
            j--;
        }
    
        ncount=j-i+1;
        strncpy(newstr,str+i,ncount);  //函数原型char *strncpy(char *dest, char *src, int n)
                                       //把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest
        newstr[ncount] ='';
        return 0;
    }
    
    
    int getKeyByValue(char *keyvaluebuf,char *keybuf,char *valuebuf)
    {
        char *p=NULL; 
        int ret=0;
        if(keyvaluebuf==NULL || keybuf==NULL || valuebuf==NULL)
        {
            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 = trimSpace(p,valuebuf);
    
        if(ret!=0)
        {
            printf("func trimSpace() err:%d 
    ", ret);
            return ret;
        }
    
        return ret;
    }
    
    int main()
    {
        int ret=0;
        char buf[1024]={0};
    
        char   *keyandvalue = "key2   =  valude2    ";
        char   *key= "key2";
    
        ret = getKeyByValue(keyandvalue,key,buf);
        if(ret!=0)
        {
            printf("func getKeyByValue() err:%d 
    ",ret);
            return ret;
        }
        
        printf("buf:%s 
    ",buf);
    
        system("pause");
        return ret;
    }
    Stay hungry,Stay foolish
  • 相关阅读:
    一些遇到的错误的总结:
    ThinkPHP add save delete的返回说明
    一些实用函数 :去除html标签//去除空白//截取汉字
    group_concat
    linux环境下使用mkdir()函数无法创建目录的问题
    报错:Namespace declaration statement has to be the very first statement in the script的解决方法
    ThinkPHP中,字段更新加1的几种写法
    小狼毫输入法安装与简单配置(windows系统)
    对win10和win11的吐嘈
    看死亡诗社时有的一点新想法
  • 原文地址:https://www.cnblogs.com/zhesun/p/4952477.html
Copyright © 2011-2022 走看看