0
点赞
收藏
分享

微信扫一扫

整型转字符串itoa

正义的杰克船长 2022-02-12 阅读 57
c语言c++
itoa代码的实现
#include<stdio.h>
#include<assert.h>
 value整型  以 radix 进制  做转换,转换结果保存到buffer数组
char* my_itoa(int value, char* arr, int radix)
{
	assert(value != 0);
	char index[] = { "0123456789ABCDEF" };
	int flag = value < 0 && radix == 10 ? 1 : 0;
	if (flag == 0)
	{
		arr[0] = '-';
		value * -1;
	}
	unsigned int value_temp = (unsigned int)value;
	int i= flag;
	for (; value_temp != 0; i++)
	{
		arr[i] = index[value_temp % radix];
		value_temp = value_temp / radix;
	}
	arr[i] = '\0';
	int temp = 0;
	for (int j = 0; j <= (i - 1) / 2; j++)
	{
		temp = arr[j+flag];
		arr[j+flag] = arr[i - 1 - j];
		arr[i - 1 - j] = temp;
	}
	return arr;

}
int main()
{
	char buffer[256] = {};
	char * res = my_itoa(-1,buffer,2); //1111 1111
	printf("%s\n",res);
	return 0;
}

举报

相关推荐

0 条评论