名前空間
変種
操作

std::stoul, std::stoull

From cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
 
ヘッダ <string> で定義
unsigned long      stoul ( const std::string& str,
                           std::size_t* pos = nullptr, int base = 10 );
(1) (C++11以降)
unsigned long      stoul ( const std::wstring& str,
                           std::size_t* pos = nullptr, int base = 10 );
(2) (C++11以降)
unsigned long long stoull( const std::string& str,
                           std::size_t* pos = nullptr, int base = 10 );
(3) (C++11以降)
unsigned long long stoull( const std::wstring& str,
                           std::size_t* pos = nullptr, int base = 10 );
(4) (C++11以降)

文字列strの符号なし整数値を解釈します。

変換関数内部のポインタ(型はchar* (1,3) または wchar_t* (2,4))をptrとします。

1) std::strtoul(str.c_str(), &ptr, base)を呼び出します。
2) std::wcstoul(str.c_str(), &ptr, base)を呼び出します。
3) std::strtoull(str.c_str(), &ptr, base)を呼び出します。
4) std::wcstoull(str.c_str(), &ptr, base)を呼び出します。

まず、最初の非空白文字が見つかるまで空白文字(std::isspaceの呼び出しで識別される)をすべてスキップし、次に可能な限り多くの文字を、基数baseの有効な符号なし整数数値表現を形成するために取り込み、それらを整数値に変換します。有効な符号なし整数値は、以下の部分から構成されます。

  • (任意)プラスまたはマイナスの記号
  • (オプション) 8進数を表す接頭辞(0)(基数が8または0の場合にのみ適用されます)
  • (オプション) 16進数を表す接頭辞(0xまたは0X)(基数が16または0の場合にのみ適用されます)
  • 数字のシーケンス

baseの有効な値のセットは{0, 2, 3, ..., 36}です。基数2の整数の有効な数字のセットは{0, 1}、基数3の整数は{0, 1, 2}などです。10より大きい基数では、有効な数字にはアルファベット文字が含まれ、基数11の整数ではAaから始まり、基数36の整数ではZzまでとなります。大文字・小文字は区別されません。

現在インストールされているC ロケールによって、追加の数値形式が受け入れられる場合があります。

baseの値が0の場合、数値基数は自動検出されます。プレフィックスが0の場合は基数は8進数、プレフィックスが0xまたは0Xの場合は基数は16進数、それ以外の場合は基数は10進数となります。

入力シーケンスにマイナス符号が含まれていた場合、数字のシーケンスから計算された数値は、結果の型で単項マイナス演算子のように負の値にされ、符号なし整数ラップアラウンド規則が適用されます。

posがヌルポインタでない場合、ptrには、str.c_str()内の最初の未変換文字のアドレスが格納され、その文字のインデックスが計算されて*posに格納されます。これにより、変換によって処理された文字数がわかります。

目次

[編集] パラメータ

str - 変換する文字列
pos - 処理された文字数を格納する整数へのアドレス
base - 基数

[編集] 戻り値

指定された符号なし整数型に変換された文字列。

[編集] 例外

[編集]

[編集] 不具合報告

以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。

DR 適用対象 公開された動作 正しい動作
LWG 2009 C++11 次の場合、std::out_of_rangeはスローされません。
std::strtoulまたはstd::strtoullerrnoERANGEを設定する。
スローします。

[編集] 関連項目

(C++11)(C++11)(C++11)
文字列を符号付き整数に変換する
(function) [編集]
(C++11)(C++11)(C++11)
文字列を浮動小数点値に変換する
(function) [編集]
English 日本語 中文(简体) 中文(繁體)