Strtolとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Strtolの意味・解説 

strtol

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/04/30 19:34 UTC 版)

strtol (string to long integer) およびstrtoul (string to unsigned long integer) とは、それぞれ引数の文字列をC言語の符号付き長整数型longおよび符号無し長整数型unsigned longに変換する標準Cライブラリ関数である。ヘッダーファイルstdlib.hに宣言されている。

形式

#include <stdlib.h>
long int strtol(const char *nptr, char **endptr, int base);
unsigned long int strtoul(const char *nptr, char **endptr, int base);

C99以降は以下のようなプロトタイプである[1]

long int strtol(const char * restrict nptr, char ** restrict endptr, int base);
unsigned long int strtoul(const char * restrict nptr, char ** restrict endptr, int base);

機能

文字列

第1引数nptrの文字列では、+もしくは-の後に、以下のものを1つ以上続けて書くことができる。

  • 0から9の数字
  • AからZまたはaからzのアルファベット文字

符号は省略することもできる。

また、第3引数baseで、2から36までの基数を指定することができる。baseが0の場合は、数字またはアルファベット文字部分の先頭で判断する。

  • 0xで始まる場合、16進数とみなす。
  • 0で始まる場合、8進数とみなす。
  • それ以外の場合は、10進数とする。

文字列先頭に空白があった場合は無視される。

第2引数endptrNULLでない場合、endptrが指しているアドレスに変換終了位置へのポインタが保存される。

戻り値

変換が成功した場合は、変換した値を返す。

変換に失敗した場合、0を返す。

正しい値が表現可能な範囲に収まらない場合、strtolLONG_MINもしくはLONG_MAXを返す。strtoulULONG_MAXを返す。また、errnoERANGEが設定される。

strtoll/strtoull

C99以降は、戻り値がlong long型で、範囲外の場合にLLONG_MINまたはLLONG_MAXを返すstrtollと、戻り値がunsigned long long型で、範囲外の場合にULLONG_MAXを返すstrtoullも規定されている。

#include <stdlib.h>
long long int strtoll(const char * restrict nptr, char ** restrict endptr, int base);
unsigned long long int strtoull(const char * restrict nptr, char ** restrict endptr, int base);

long longunsigned long longは少なくとも64ビットの値を表現できることが規格で保証される。

atoi/atol

類似の機能を持つ標準関数にatoiatolなどがあるが、こちらはエラーが発生した場合の動作が規定されておらず、strtolなどと比べて堅牢性に欠けるため、atoiatolを非推奨としているガイドラインもある[2]

脚注

出典

関連項目

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  
  •  Strtolのページへのリンク

辞書ショートカット

すべての辞書の索引

「Strtol」の関連用語

Strtolのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Strtolのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのstrtol (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS