实现函数atoi和itoa

来源:互联网 发布:图片制作软件下载 编辑:程序博客网 时间:2024/05/19 04:28
//atoi的实现
#include<iostream>using namespace std;int atio1(char *s){int sign=1,num=0;    if(*s=='-')        sign=-1;    s++;    while((*s)!='\0')    {        num=num*10+(*s-'0');        s++;    }       return num*sign;   }

//itoa的实现

// num:待转换的整型变量   str:指向存放结果    radix:基数char *itoa(int num, char *str, int radix)  {     const char table[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char *ptr = str;if (num == 0) {//数值为0时*ptr++ = '0';*ptr = '\0';return str;}bool neg = false;if (num < 0) {//数值小于0时,添加负号,并将指针后移neg = true;num *= -1;*ptr++ = '-';}    while (num)     {         *ptr++ = table[num % radix];         num /= radix;     } *ptr = '\0'; //反转字符串char *beg = (neg ? str +1 : str);ptr--;while (beg < ptr)    {         int temp = *beg;         *beg  = *ptr;         *ptr  = temp;beg++;ptr--;    }     return str; }

测试代码

int main()
{
    char *s="-123567890";   
    cout<<atio1(s);
    system("pause");
}



原创粉丝点击