atol.c
1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
=============================================================================
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;
}