【書式】
#include <stdlib.h>
long strtol(const char *s, char **endptr, int base);
unsigned long strtoul(const char *s, char **endptr, int base);
【解説】
strtol() は文字列sをlongに変換します。
strtoul()は文字列sをunsigned longに変換します。
先行する空白は無視します。endptrがNULLでなければ、変換が終了したとき
のポインタの値を*endptrに格納します。変換の基数baseが2から36のときに
は、入力はbase進数と仮定します。
baseに16を指定したときには文字列は0xあるいは0Xではじまってもかまいま
せん。
baseに0を指定すると、文字列 s の内容によって自動的に基数が決定されま
す。文字列の先頭が0xあるいは0Xのときには16進数として、0であれば8進数
として、それ以外のときには10進数として解釈されます。
10以上の数値を表す文字は'A' - 'Z'または'a' - 'z'です。
【リターン値】
変換された値を返します。数字がない場合には0を返します。
オーバーフローが発生したときにはerrno にERANGEをセットし、strtol()は
符号にしたがって LONG_MAX 、LONG_MINを、strtoul()はULONG_MAXを返しま
す。パラメタが正しくないときにはerrno にEINVALをセットして0 を返しま
す。
【エラー】
ERANGE
変換でオーバーフローが発生しました
EINVAL
パラメタが正しくありません
【可搬性】
strtol()
ANSI, UNIX, DOS窓
strtoul()
ANSI, DOS窓
【参照】
atol(3), strtod(3)
【copyright (c) 安江正樹@東海大学理学部物理学科】