#include <iostream>
#include <string.h>
using namespace std;
int my_atoi(const char* in_str,const int length)
{
int re=0;
int i=0;
bool tag=false;
if(in_str[0]=='-')
{
i=1;
tag=true;
}
for(i;i<length;++i)
{
re=re*10+in_str[i]-'0';
}
if(tag)
re=0-re;
return re;
}
char *reverse(char *s)
{
char temp;
char *p = s; //p指向s的头部
char *q = s; //q指向s的尾部
while(*q)
++q;
q--;
//交换移动指针,直到p和q交叉
while(q > p)
{
temp = *p;
*p++ = *q;
*q-- = temp;
}
return s;
}
char * my_itoa(int in_num,char* re)
{
int i=0;
bool tag=false;
if(in_num<0)
{
in_num=0-in_num;
tag=true;
}
do
{
re[i++]='0'+in_num%10;
in_num=in_num/10;
}while(in_num!=0);
if(tag)
{
re[i++]='-';
}
re[i]='\0';
return reverse(re);
}
int main()
{
char* a="-123";
int ire;
char cre[100]="";
ire=my_atoi(a,strlen(a));
my_itoa(ire,cre);
cout << sizeof(cre)<<":"<<strlen(cre)<<":"<<a<<":"<<ire<<":"<<cre<<endl;
return 0;
}
atoi函数和itoa函数的简单实现
最新推荐文章于 2023-09-05 20:47:44 发布