压缩空格的函数以及BCD码与ASCII相互转换函数
2013-07-24 17:08 夏洛克·福尔摩斯 阅读(638) 评论(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); }
技术成就现在,眼光着看未来。