189 8069 5689

Linux中itoa函数如何使用

这篇文章将为大家详细讲解有关Linux中itoa函数如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站制作、做网站、太康网络推广、小程序开发、太康网络营销、太康企业策划、太康品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供太康建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

linux需要itoa函数,下面我就提供一份跨平台的itoa函数。

//return the length of result string. support only 10 radix for easy use and better performance

int my_itoa(int val, char* buf)

{

const int radix = 10;

char* p;

int a; //every digit

int len;

char* b; //start of the digit char

char temp;

p = buf;

if (val < 0)

{

*p++ = '-';

val = 0 - val;

}

b = p;

do

{

a = val % radix;

val /= radix;

*p++ = a + '0';

} while (val > 0);

len = (int)(p - buf);

*p-- = 0;

//swap

do

{

temp = *p;

*p = *b;

*b = temp;

--p;

++b;

} while (b < p);

return len;

}

这个函数会返回字符串的长度,在某些场合下会很有用。

我测试了一下,这个函数大概比MFC自带的itoa要快20%左右。

(因为不需要在循环体内判断if (a > 9)了,所以更快)。

2010/1/8 改进版:

//return the length of result string. support only 10 radix for easy use and better performance

int my_itoa(int val, char* buf)

{

const unsigned int radix = 10;

char* p;

unsigned int a; //every digit

int len;

char* b; //start of the digit char

char temp;

unsigned int u;

p = buf;

if (val < 0)

{

*p++ = '-';

val = 0 - val;

}

u = (unsigned int)val;

b = p;

do

{

a = u % radix;

u /= radix;

*p++ = a + '0';

} while (u > 0);

len = (int)(p - buf);

*p-- = 0;

//swap

do

{

temp = *p;

*p = *b;

*b = temp;

--p;

++b;

} while (b < p);

return len;

}

改进:将除法运算从有符号整数改为了无符号整数。典型速度从240毫秒左右,提高到了180毫秒左右。作为对比,MFC自带的itoa耗时是320毫秒左右。

关于Linux中itoa函数如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


分享名称:Linux中itoa函数如何使用
新闻来源:http://cdxtjz.cn/article/gdscij.html

其他资讯