• 压缩空格的函数以及BCD码与ASCII相互转换函数


    /**
    函数名:zip_space
    功能 :压缩空格的函数
    参数 :
    s 源字符串
    返回值:
    0 成功
    **/

    int zip_space(char *s){
        int i,j;
        int len;
        if(s==NULL || strlen(s)==0)
        {
            return -1;
        }
    
        len=strlen(s);
    
        i=j=0;
        while(s[i]!=''){
            if(s[i]!=' '){
                if(i!=j){
                    s[j]=s[i];
                }
                i++;j++;
            }else{
                i++;
            }
        }
        while(j<i){
            s[j]='';
            j++;
        }
        return(0);
    }
    /*************
    ****************/
    int zip_0a09(char *s, int begin)
    {
        int len=strlen(s);
        int i,j;
        i=j=begin;
        while(s[i]!=''){
            if(s[i]!=0x09 && s[i]!=0x0a){
                if(i!=j){
                    s[j]=s[i];
                }
                i++;j++;
            }else{
                i++;
            }
        }
        if(j<i){
            s[j]='';
        }
        return(j);
    }
    
    
    
    
    /****asc->bcd***/
    int iAscToBcd(char *pcASC,char *pcBCD,int iLength){
        int i;
        for(i=0;i<iLength/2;i++){
            unsigned char ch1,ch2;
            ch1=(unsigned char)pcASC[i*2];
            ch2=(unsigned char)pcASC[i*2+1];
            if(ch1>='a' && ch1<='f')
                ch1=ch1-'a'+0xa;
            else if(ch1>='A' && ch1<='F')
                ch1=ch1-'A'+0xa;
            else
                ch1=ch1-'0';
            if(ch2>='a' && ch2<='f')
                ch2=ch2-'a'+0xa;
            else if(ch2>='A' && ch2<='F')
                ch2=ch2-'A'+0xa;
            else
                ch2=ch2-'0';
            pcBCD[i]=(ch1<<4)|ch2;
        }
        return(0);
    }
    
    
    
    /****bcd->asc***/
    int iBcdToAsc(char *pcBCD,char *pcASC,int iLength){
        int i;
        for(i=0;i<iLength;i++){
            unsigned char ch;
            ch=(unsigned char)pcBCD[i];
            ch=ch>>4;
            if(ch>=10){
                pcASC[2*i]=ch-10+'A';
            }else{
                pcASC[2*i]=ch+'0';
            }
            ch=(unsigned char)pcBCD[i];
            ch=ch &0x0f;
            if(ch>=10){
                pcASC[2*i+1]=ch-10+'A';
            }else{
                pcASC[2*i+1]=ch+'0';
            }
        }
        return(0);
    }
  • 相关阅读:
    .netcore利用DI实现级联删除
    识别手写数字增强版100%
    嗨!请查收这道有趣的面试题
    理解TCP/IP协议栈之HTTP2.0
    基于Redis的分布式锁和Redlock算法
    从生日悖论谈哈希碰撞
    Redis面试热点工程架构篇之数据同步
    Redis面试热点之底层实现篇(续)
    saltstack安装+基本命令
    25个iptables常用示例
  • 原文地址:https://www.cnblogs.com/sherlockhomles/p/3211068.html
Copyright © 2020-2023  润新知