第一道题目我给出的参考:
#include <stdio.h>
int atoi(char *str)
{
int Num=0;
int stolen=+1;
{
int Num=0;
int stolen=+1;
if( *str=='-' )
{
stolen = -1;
str++;
}
else if( *str=='+' )
{
stolen = +1;
str++;
}
{
stolen = -1;
str++;
}
else if( *str=='+' )
{
stolen = +1;
str++;
}
for ( Num= 0; *str >= '0' && *str <= '9'; ++str)
Num = (Num * 10) + (*str - '0');
Num = (Num * 10) + (*str - '0');
return Num * stolen;
}
}
int main(int argc, char* argv[])
{
{
int i=0;
int j=0;
int j=0;
char *test[]={"1234","+1234","-1234","0","+0","","1234567890","+y345","+12y0","+-23","--y23","9+"};
int testResult[]={1234,1234,-1234,0,0,0,1234567890,0,12,0,0,9};
for( ; i<sizeof(test)/sizeof(char *); ++i)
{
if( atoi(test[i])==testResult[i] )
printf("test case %d pass! \n",i);
else
printf("test case %d failure! \n",i);
}
int testResult[]={1234,1234,-1234,0,0,0,1234567890,0,12,0,0,9};
for( ; i<sizeof(test)/sizeof(char *); ++i)
{
if( atoi(test[i])==testResult[i] )
printf("test case %d pass! \n",i);
else
printf("test case %d failure! \n",i);
}
return 0;
}
}
大家看看,这是最好的转换方式吗?