機能 |
文字列をlong int型の表現に変換する。 |
||||||
---|---|---|---|---|---|---|---|
定義 |
#include <stdlib.h> long int strtol ( const char * nptr, char ** endptr, int base ); ※C99規格では以下の定義となる long int strtol ( const char * restrict nptr, char ** restrict endptr, int base ); |
||||||
引数 |
|
||||||
戻り値 |
変換された値を返す。 変換が不可能ならば 0 を返す。 正しい値が表現可能な値の範囲外である場合は、LONG_MINまたはLONG_MAXを返し、errnoにERANGEの値を格納する。 |
||||||
実装例 |
#include <stdlib.h> #include <stdio.h> int main(void) { long int n; char *s; n = strtol("101abc", &s, 2); /* 2進数整数 */ printf("%ld ... %s\n", n, s); n = strtol("10", &s, 0); /* 10進数整数 */ printf("%ld ... %s\n", n, s); n = strtol("010", &s, 0); /* 8進数整数 */ printf("%ld ... %s\n", n, s); n = strtol("0x10", &s, 0); /* 16進数整数 */ printf("%ld ... %s\n", n, s); return 0; } |
||||||
実行結果 |
5 ... abc 10 ... 8 ... 16 ... |
strtol()