itoa():
将整型值转换为字符串
头文件stdio.h 或 stdlib.h
itoa()函数有3个参数:
第一个参数是要转换的数字,
第二个参数是要写入转换结果的目标字符串,
第三个参数是转移数字时所用 的基数。转换基数为10。10:十进制;2:二进制...
itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf。可以跟sprintf相互使用。
C语言实现:
char* itoa(int num,char* str,int radix)
{/*索引表*/
char index[]="0123456789ABCDEF";
unsigned unum;/*中间变量*/
int i=0,j,k;
/*确定unum的值*/
if(radix==10&&num<0)/*十进制负数*/
{
unum=(unsigned)-num;
str[i++]='-';
}
else unum=(unsigned)num;/*其他情况*/
/*转换*/
do{
str[i++]=index[unum%(unsigned)radix];
unum/=radix;
}while(unum);
str[i]='\0';
/*逆序*/
if(str[0]=='-')
k=1;/*十进制负数*/
else
k=0;
for(j=k;j<=(i-1)/2;j++)
{ char temp;
temp=str[j];
str[j]=str[i-1+k-j];
str[i-1+k-j]=temp;
}
return str;
}
atoi():
把字符串转换成整型
C语言实现:
int my_atoi(const char *src)
{
int s = 0;
bool isMinus = false;
while(*src == ' ') //跳过空白符
{
src++;
}
if(*src == '+' || *src == '-')
{
if(*src == '-')
{
isMinus = true;
}
src++;
}
else if(*src < '0' || *src > '9') //如果第一位既不是符号也不是数字,直接返回异常值
{
s = 2147483647;
return s;
}
while(*src != '\0' && *src >= '0' && *src <= '9')
{
s = s * 10 + *src - '0';
src++;
}
return s * (isMinus ? -1 : 1);
}
原文链接: https://www.cnblogs.com/zjx123/p/12869691.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/197232
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!