设计函数 int atoi(char s)

着急用。最好在今天晚上12点前就有答案。谢谢。
2024-12-25 20:52:14
推荐回答(4个)
回答1:

 
 
 
参数的类型应该是 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" ) );
}
 
 
 

回答2:

#include
using namespace std ;

int main()
{
char a[] = "123123123" ;
cout << atoi ( a ) ;
}

回答3:

貌似是面试经典题。

回答4:

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;ipd(s[0])
s[0]

}