本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 3 : ライブラリ (N~Z) > s

strtol(3C)

HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

strtol(), atol(), atoi(), strtoul(), strtoll(), strtoull() ― 文字列を整数に変換

構文

#include <stdlib.h>

long strtol(const char *str, char **ptr, int base);

long long strtoll(const char *str, char **ptr, int base);

long atol(const char *str);

int atoi(const char *str);

unsigned long strtoul(const char *str, char **ptr, int base);

unsigned long long strtoull(const char *str, char **ptr, int base);

説明

strtol() または strtoul() は、 str が指す文字列を long int または unsigned long int 形式にそれぞれ変換します。 strtoll() または strtoull() は、 str が指す文字列を long long または unsigned long long 形式にそれぞれ変換します。 文字列は、底の値と矛盾する文字が検出されるまで解釈されます。 先頭の「空白」文字 ctype(3C) 内の isspace() により定義) は無視されます。 変換が行われない場合は、0 が返されます。

引き数 base が、2 以上 36 以下の場合、その値は変換用の底の値として用いられます。 オプションの先頭符号の後に続く先頭の 0 は無視され、 base が 16 のとき、 0x0X は無視されます。

base が 0 の場合、文字列の内容により底が決まります。つまり、オプションの先頭符号の後に続くものが 0 であれば 8 進数への変換が行われ、 0x0X であれば 16 進数への変換が行われます。 それ以外なら 10 進数への変換が行われます。

ptr の値が (char **)NULL でない場合、解釈を終了させる文字を指すポインターを ptr が指す位置に返します。 文字列から整数が生成されない場合、 ptr が指す位置に str が設定され、ゼロが返されます。

atol(str) は、 strtol(str, (char **)NULL, 10) と同様です。

atoi(str) は、 int strtol(str, (char **)NULL, 10) と同様です。

戻り値

変換が正常に終了すれば、すべての関数は変換した値を返します。

正しい値がオーバーフローを起こした場合、

strtol()  

は (値の符号により) LONG_MAX または LONG_MIN を返し、 errno には ERANGE が格納されます。

また、 

strtoul()ULONG_MAX を返し、 errno には ERANGE が格納されます。

strtoll()  

は (値の符号により) LONG_LONG_MAX または LONG_LONG_MIN を返し、 errno には ERANGE が格納されます。

strtoull()  

ULONG_LONG_MAX を返し、 errnoERANGE が格納されます。

atol()atoi() は両方ともオーバーフロー条件を無視します。

その他のすべてのエラーに対しては 0 が返され、 errno にはエラーを示す値が格納されます。

エラー

次の条件のいずれかが起こると、 strtol()strtoul()strtoll()、 または strtoull() はエラーを引き起こし、 errno に以下の左側の値が格納されます。

EINVAL 

base の値がサポートされていない場合

ERANGE 

返される値がオーバーフローを引き起こしている場合

著者

これらのインタフェースは、OSF と HP で開発されました。

標準準拠

strtol(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, ANSI C

atoi(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C

atol(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C

strtoul(): AES, SVID3, XPG4, ANSI C

strtoll(): C99

strtoull(): C99

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.