//int类型转换为string类型
//Int_i: 要转换的int类型
//String_s:转换后的string类型
void Int_To_Str(int Int_i,char *String_s)
{
int a;
int b= 0; //用于计数
char *ptrfing,pBuffer[5]; //定义一个字符串数组和字符串指针,
ptrfing = String_s; //内部指针指向外部指针,进行参数传递,是属于源参数传递(通过地址),
if(Int_i< 10) // 当整数小于10,转换为0x格式
{
*ptrfing ++ = '0'; //单个数字前面补0
*ptrfing ++ =Int_i+0x30;
}
else
{
while(Int_i> 0)
{
a= Int_i% 10;
Int_i=Int_i/ 10;
pBuffer[b++] =a+0x30; // 通过计算把数字编成ASCII码形式
}
b-- ;
for(;b>= 0;b--) // 将得到的字符串倒序
{
*(ptrfing++) = pBuffer[b];
}
}
*ptrfing = '\0';
}
char* Int2String(int num,char *str)//10进制
{
int i = 0;//指示填充str
//确定开始调整的位置
int j = 0;
if(num<0)//如果num为负数,将num变正
{
num = -num;
str[i++] = '-';
}
//转换
do
{
str[i++] = num%10+48;//取num最低位 字符0~9的ASCII码是48~57;简单来说数字0+48=48,ASCII码对应字符'0'
num /= 10;//去掉最低位
}while(num);//num不为0继续循环
str[i] = '\0';
if(str[0]=='-')//如果有负号,负号不用调整
{
j = 1;//从第二位开始调整
++i;//由于有负号,所以交换的对称轴也要后移1位
}
//对称交换
for(;j<i/2;j++)
{
//对称交换两端的值 其实就是省下中间变量交换a+b的值:a=a+b;b=a-b;a=a-b;
str[j] = str[j] + str[i-1-j];
str[i-1-j] = str[j] - str[i-1-j];
str[j] = str[j] - str[i-1-j];
}
return str;//返回转换后的值
}