blob: 79c78b7836b1dc3e59249ac21e8e774165c8348e (
plain)
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
|
/* atol.c - long atol( char *s ) */
/* atol converts s to a long */
/* leading spaces and tabs are ignored, an optional sign is recognised, */
/* and the digits (0 to 9) following determine the long */
long atol( s )
register char *s;
{
char signflag;
long number;
while ( *s == ' ' || *s == '\t')
s++;
signflag = 0;
if ( *s == '+' )
s++;
else if ( *s == '-' )
{
signflag = 1;
s++;
}
number = 0;
while ( *s >= '0' && *s <= '9' )
number = 10 * number + *s++ - '0';
if ( signflag )
return -number;
return number;
}
|