itoa是windows的标准函数,但在linux系统中并未作为标准实现。这些天写了一个linux版本的测试例子,其中需要用到itoa函数,所以自己实现了一下。目前该函数只有
base为10的版本,其实现思路大致为:
1)首先判断待转换整数的符号,并且对负数最大值做记录(如果为INT_MIN,则positive_add被赋值为1)。
2)循环将待转换整数模10,直至待转换整数等于0。这里采用了do while循环,是为了保证当待转换整数为0时,依然可以执行一次循环。3)第二步得到的数是反序的,所以此时需要将结果倒转回来,被拷贝到输出buf中。
下面是代码:
static void MyItoA10(int val, char* buf, int buf_l