参数的类型应该是 char *,不是 char。
可以这样写(main( ) 里以有前导空白的负数测试):
#include
#include
int atoi( char *s ) {
int sign = 1,
mag = 0;
while ( isspace( *s ) ) /* 忽略前导空白 */
++s;
if ( *s == '-' || *s == '+' )
if ( *s++ == '-' ) /* 检测负号并自增 s */
sign = -1;
while ( isdigit( *s ) ) /* 从最高有效数开始 */
mag = mag * 10 + *s++ - '0';
return sign * mag;
}
void main( ) {
printf( "%d\n", atoi( " -321" ) );
}
#include
using namespace std ;
int main()
{
char a[] = "123123123" ;
cout << atoi ( a ) ;
}
貌似是面试经典题。
int pd(char s)
{
if(s=='1')return 1;
}
int atoi (char s[])
{
int i,j;
double k;
for (i=0;i<100;i++)
{
if (s[i]=='.')j=i;
}
k=1.0;
for (i=0;i
s[0]
}