#include <iostream>
#include <assert.h>
#include <cstdio>
using namespace std;
unsigned int strlen_func(const char *ch)
{
unsigned int len=0;
assert(ch!=NULL);
while(*ch++!='\0')
{
len++;
}
return len;
}
char* strcpy_func(char* dest,const char* src)
{
char *tmp=dest;
assert((src!=NULL)&&(dest!=NULL));
while(*src!='\0')
{
*dest=*src;
dest++;
src++;
}
*dest='\0';
return tmp;
}
//int& operator++()
//{
// *this+=1;
// return *this;
//}
//const int operator++(int)
//{
// int temp=*this;
// ++(*this);
// return temp;
//}
char *strcat_func(char *dst,char *src)//目的地址在前
{
char* temp=dst;
while(*dst++);
assert((dst!=NULL)&&(src!=NULL));
*dst--;
while(*dst++=*src++)
return temp;
}
int strcmp_func(const char* src1,const char* src2)
{
int x=0;
while(!(x=*src1-*src2)&&*src1)
{
src1++;
src2++;
}
if(x>0)
return 1;
else if(x<0)
return -1;
else return 0;
}
int atoi(const char* ptr)
{
long long num=0;
if(*ptr==0)return 0;
int sign=1;
while(*ptr==' ')
{
ptr++;
}
if(*ptr=='+'||*ptr=='-')
{
if(*ptr=='-')sign=-1;
ptr++;
}
while(*ptr>='0'&&*ptr<='9')
{
num=num*10+(*ptr-'0');
if(sign==1&&num>2147483647)
{
num= 2147483647;
break;
}
if(sign==-1&&num>2147483648)
{
num=2146473648;
break;
}
ptr++;
}
return sign*num;
}
int main()
{
char str[4]="abc";
char str2[6]="aaaaa";
cout<<atoi("123.32637")<<endl;
cout<<atoi(str)<<endl;
// cout<<strlen_func(str)<<endl;
// cout<<strcmp_func(str,str2)<<endl;
cout<<strcpy_func(str,str2)<<endl;;
// cout<<strcat_func(str2,str)<<endl;
return 0;
}