huffman数据压缩算法验证成功
This commit is contained in:
74
mystring.c
Normal file
74
mystring.c
Normal file
@@ -0,0 +1,74 @@
|
||||
|
||||
/*
|
||||
*
|
||||
* 把整数字符串传化为int,直到遇到非数字字符
|
||||
*
|
||||
*/
|
||||
static int str_ainttoi(const char *s)
|
||||
{
|
||||
int ret=0;
|
||||
int sig=1;
|
||||
if(*s=='-'){
|
||||
s++;
|
||||
sig=-1;
|
||||
}
|
||||
while(*s)
|
||||
{
|
||||
if(*s>='0'&&*s<='9')
|
||||
{
|
||||
ret*=10;
|
||||
ret+=*s-'0';
|
||||
}
|
||||
else return ret;
|
||||
s++;
|
||||
}
|
||||
return ret*sig;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int str_ahextoi(const char *s)
|
||||
{
|
||||
int ret=0;
|
||||
while(*s)
|
||||
{
|
||||
if(*s>='0'&&*s<='9')
|
||||
{
|
||||
ret*=16;
|
||||
ret+=*s-'0';
|
||||
}
|
||||
else if(*s>='a'&&*s<='f')
|
||||
{
|
||||
ret*=16;
|
||||
ret+=*s-'a'+10;
|
||||
}
|
||||
else if(*s>='A'&&*s<='F')
|
||||
{
|
||||
ret*=16;
|
||||
ret+=*s-'A'+10;
|
||||
}
|
||||
else return ret;
|
||||
s++;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
int str_atoi(const char *s)
|
||||
{
|
||||
if(s[0]=='0'&&((s[1]=='x')||(s[1]=='X'))){
|
||||
return str_ahextoi(&s[2]);
|
||||
}else{
|
||||
return str_ainttoi(s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user