#include <iostream>using namespace std;
#define SIZE 100void itoa(int n, char s[]);int atoi (char s[]);
int main(void ){ int n; char s[SIZE]; char s2[] = "12p"; n = -999; itoa (n,s); cout << atoi(s2) << endl; return 0;}void itoa (int n, char s[]){ int i,j,sign; if((sign=n)<0)//记录符号 n=-n;//使n成为正数 i=0; do{ s[i++]=n+'0';//取下一个数字 }while ((n/=10)>0);//删除该数字 if(sign<0) s[i++]='-'; s[i]='/0'; for(j=i;j>=0;j--)//生成的数字是逆序的,所以要逆序输出 printf("%c",s[j]); printf("/n");}int atoi (char s[]){ int i,n,sign; for(i=0;isspace(s[i]);i++)//跳过空白符 ; sign=(s[i]=='-')?-1:1; if(s[i]=='+'||s[i]==' -')//跳过符号 i++; for(n=0;isdigit(s[i]);i++) n=10*n+(s[i]-'0');//将数字字符转换成整形数字 return sign *n;}
#include <iostream>using namespace std;
char *itoa(int val, char *buf, int radix){ char *p, *first, temp; int digital; p = buf; if (val < 0) { *p++ = '-'; val = -val; } first = p; do { digital = val%radix; val /= radix; if (digital > 9) { *p++ = (char)(digital - 10 + 'A'); } else { *p++ = (char)(digital + '0'); } }while(val > 0); *p-- = '/0'; do { temp = *p; *p = *first; *first = temp; p--; first++; }while(first < p); return buf;}
void main(void){ int a = 255; int radix = 16; char str[64]; itoa(a, str, radix); cout << str << endl;}
