atoi.c
1.26 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
/*
=============================================================================
Copyright (C) 1997-1999 NINTENDO Co.,Ltd.
$RCSfile: atoi.c,v $
$Revision: 1.1.1.1 $
$Date: 2002/10/30 02:07:09 $
=============================================================================
関数名:atoi
-----------------------------------------------------------------------------
書式: #include <stdlib.h>
int atoi(const char *s)
引数: string 文字列
戻り値:int 型の数値
説明: string 文字列を int 型の数値に変換する。
文字列 stringは、次の形式で指定する。
[whitespace][{sign}][digits]
<whitespace> 空白類文字 (isspace 参照)
<sign> +か−
<digits> 1桁以上の10進数値
数字の一部として認識出来ない文字が現れたところで
変換を打ち切る。
-----------------------------------------------------------------------------
*/
#include "stdlib.h"
#include "ctype.h"
int atoi(const char *s)
{
int sign = 1,digits = 0;
while(isspace(*s))
s++;
if (*s =='-') {sign = -1; s++;}
else if (*s =='+') s++;
while(isdigit(*s)) {
digits *= 10;
digits += (*s++) - '0';
}
digits *= sign;
return digits;
}