c语⾔int类型转换为string类型1. int类型 12345 转换为char类型 12345:
#include "stdio.h"
/**
*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;c++string类型
}
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';
}
int main()
{
int a=12345;
char b[4];
Int_To_Str(a,b);
printf("转换为char类型:b= %s\n",b);
}
执⾏结果:
2.int类型 12345 转换为char类型 12345:
#include "stdio.h"
/**
*int类型转换为string类型
*Int_i:要转换的int类型
*String_s:转换后的string类型
**/
char* Int_To_Str(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; //返回转换后的值
}
int main()
{
int a=12345;
char b[4];
Int_To_Str(a,b);
printf("转换为char类型:b= %s\n",b);
}
执⾏结果:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论