sherlockhomles

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

2013-07-24 17:08  夏洛克·福尔摩斯  阅读(571)  评论(0编辑  收藏  举报

/**
函数名: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]!=\'\0\'){
        if(s[i]!=\' \'){
            if(i!=j){
                s[j]=s[i];
            }
            i++;j++;
        }else{
            i++;
        }
    }
    while(j<i){
        s[j]=\'\0\';
        j++;
    }
    return(0);
}
/*************
****************/
int zip_0a09(char *s, int begin)
{
    int len=strlen(s);
    int i,j;
    i=j=begin;
    while(s[i]!=\'\0\'){
        if(s[i]!=0x09 && s[i]!=0x0a){
            if(i!=j){
                s[j]=s[i];
            }
            i++;j++;
        }else{
            i++;
        }
    }
    if(j<i){
        s[j]=\'\0\';
    }
    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);
}

 

分类:

技术点:

相关文章:

  • 2021-12-10
  • 2021-09-23
  • 2022-03-04
  • 2022-12-23
  • 2022-02-03
  • 2022-12-23
  • 2022-12-23
  • 2022-03-04
猜你喜欢
  • 2022-01-04
  • 2022-03-06
  • 2022-01-31
  • 2021-11-22
  • 2022-02-08
  • 2021-11-20
  • 2021-07-26
相关资源
相似解决方案