69,336
社区成员
发帖
与我相关
我的任务
分享
char *itoa(long int value,int radix)
{
int i,j,sign;
char ps[32],str[32];
if((radix>16) || (radix<2))
return "incorrect radix!";
sign = 0;
if(value<0)
{
sign=-1;
value=-value;
}
i=0;
do
{
if((value % radix) > 9)
ps[i] = value % radix + 55;
else
ps[i] = value % radix + 48 ;
i++;
}while((value /= radix) > 0);
if(sign<0)
ps[i]='-';
else i--;
for(j=i;j>=0;j--)
str[i-j]=ps[j];
str[i+1]='\0';
return str;
}
#include <stdio.h>
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
typedef char * va_list;
char *TF_itoa(int value, char *string, int radix)
{
/* 转换一个整数到字符串。radix为转换基数 */
char tmpString[12];
char *p;
char *pString;
bool minus = false;
pString = string;
p = &tmpString[11];
*p = '\0';
if (radix<2 || radix>26)
{
return 0;
}
if (value < 0)
{
value = -value;
minus = true;
}
if (0 == value)
{
*--p = '0';
}
while (value > 0)
{
*--p = "0123456789abcdefghijklmnopqrstuvwxyz"[value % radix];
value = value / radix;
}
if (minus)
{
*--p = '-';
}
while (*p)
{
*string++ = *p++;
}
*string = '\0';
return pString;
}
int s_atoi(char *str) //参数是待转换的字符串。
{
unsigned int number=0;
while(*str)
{
*str-='0';
if(number!=0)
number=(number<<3)+(number<<1); //代替x10的进位运算。
number+=*str;
str++;
}
return (int)number;
}
#include <stdio.h>
int main()
{
char str[20];
int number=1234567890;
sprintf(str,"%d",number);
printf("%s\n",str);
return 0;
}
//这么写
#include <stdio.h>
#include <stdlib.h>
void main()
{
char p[20];
int i=7412;
itoa(i,p,10);
printf("%s\n",p);
}