atol.c 1.31 KB
/*
=============================================================================
        Copyright (C) 1997-1999 NINTENDO Co.,Ltd.
        
        $RCSfile: atol.c,v $
        $Revision: 1.1.1.1 $
        $Date: 2002/10/30 02:07:09 $
=============================================================================
関数名:atol
-----------------------------------------------------------------------------
書式:  #include <stdlib.h>
        long atol(const char *string)
引数:  string  文字列
戻り値:long 型の数値
説明:  string 文字列を long 型の数値に変換する。

        文字列 stringは、次の形式で指定する。

        [whitespace][{sign}][digits]

            <whitespace>    空白類文字 (isspace 参照)
            <sign>          +か−
            <digits>        1桁以上の10進文字列

        数字の一部として認識出来ない文字が現れたところで
        変換を打ち切る。
-----------------------------------------------------------------------------
*/
#include    "stdlib.h"
#include    "ctype.h"

long atol(const char *string)
{
    long a = 1, b = 0;

    while(isspace(*string))
      string++;

    if (!*string)   return  0;
    if (*string == '+') string++;
    if (*string == '-') {string++; a = -1;}

    b = 0;
    while(isdigit(*string)) {
        b *= 10;
        b += (*string++) - '0';
    }
    b *= a;
    return  b;
}