两个函数..用于字符串和数值之间的转换

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

int itoa(long num,int str,char radix)

//integer to array

//把num转化成相对应的字符串,把结果放在str指向的字符串中,输出字符串的进制取决于radix,它的值可以是2到36的任何值

{

char i,ch,neg;

neg=0;

if(num<0){num=abs(num);neg=1;}

else if(num==0)strcpy(str,"0");

while(num) {

i=num%radix;

num=num/radix;

if(i>=0&&i<=9)ch=i|0x30;

if(i>9&&i<36)ch=i+55;

memmove(str+1,str,strlen(str)+1);

*str=ch;

}

if(neg)

{

memmove(str+1,str,strlen(str)+1);

*str='-';

}

return str;

}

int atoi(int str,char radix)

//array to integer

//把str指向的字符串转化为一个整数,radix为进制.取值为2-36;

{

long num;

int i,sign;

char ch;

num=0;

ch=0xff;

if(*str=='-'){sign=-1;i=1;} else {sign=1;i=0;}

for(;ch;i++)

{

ch=*(str+i);

if(isdigit(ch))num=(num*radix)+(ch&0xf); else if(islower(ch))num=(num*radix)+(ch-87);

else if(isupper(ch))num=(num*radix)+(ch-55);

}

return sign*num;

}

void main()

{

char string[20];

printf(itoa(-78,string,10));

printf("\n%d",atoi("-7788",16));

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航