1.最经典的atoi
实际用dev c++测了下,库atoi的输出:
char *str1="/0";
char *str2="123422";
char *str3="-332";
char *str4="233333333333";
char *str5="123adb23";
char *str6="0";
char *str7="+2313";
char *str8="-+23";
char *str9=NULL;
对应的输出为:
对应于上述测试用例,实现代码如下:
#include<iostream>
#include<cstddef>
using namespace std;
bool Isvalid=true;
int myatoi(const char *p)
{
long long num=0;
bool minus=false;
if(p==NULL || *p=='/0')
{
Isvalid=false;
return 0;
}
if(*p=='-')
{
minus=true;
p++;
}
else if(*p=='+')
{
p++;
}
while(*p!='/0')
{
if(*p>='0' && *p <='9')
{
num=num*10+*p-'0';
p++;
}
else
{
break;
}
}
if(minus)
num=-num;
return (int)num;
}