1 itoa的实现
//1234→4321(存储:str=n%radix,n=n/radix)→ 1234
//todo: 把含有 负数的内容写上去就好了char * my_itoa2( int num, char *string, int radix )
{ char* str=string;//得到翻转的字符串
while(num) { *str=num%radix+'0'; //*str=num%radix-'0'; 就是错误的了,哈哈。 //cout<<*str<<endl; num=num/radix; str++; } *str='\0';char temp;
int len=strlen(str); for(int i=0;i<len/2;i++) { temp=str[i]; str[i]=str[len-1-i]; str[len-1-i]=temp; } return string; }2 atoi的实现
// num=num*10+*str;
//todo:考虑 过界的情况。int my_atoi( char *str )
{ if(str==NULL) return 0; int num=0,flag=1;if(*str=='-')
{ flag=-1; } else { num=*str-'0'; } str++;//while(*st>='0'&&*str<='9')
while(*str!='\0') { num=num*10+*str-'0'; str++; }return num*flag;
}3 测试代码
int main()
{char *s="-123567890";
cout<<my_atoi(s)<<endl;int a=1234;
//*char str[20]={'\0'}; //需要预先定义好的 char *str=new char[20]; str=my_itoa2(a,str,10); cout<<str<<endl;return 0;
}