Namespaces
Variants

std:: stoul, std:: stoull

From ja.cppreference.net
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 内の符号なし整数値を解釈します。

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

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-n (n= base の場合)符号なし整数表現を形成するために可能な限りの文字を取得し、それらを整数値に変換します。有効な符号なし整数値は以下の部分で構成されます:

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

基数として有効な値の集合は {0, 2, 3, ..., 36} です。基数 2 の整数で有効な数字の集合は {0, 1} 、基数 3 の整数では {0, 1, 2} となります。これを基数が大きくなるにつれて同様に続けます。 10 より大きい基数の場合、有効な数字には英字が含まれ、基数 11 の整数では Aa から始まり、基数 36 の整数では Zz までとなります。文字の大文字・小文字は区別されません。

現在インストールされているC locale によって、追加の数値フォーマットが受け入れられる場合があります。

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

マイナス記号が入力シーケンスの一部であった場合、数字のシーケンスから計算された数値は、 単項マイナス によって結果の型で否定され、これは符号なし整数のラップアラウンド規則を適用します。

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

目次

パラメータ

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

戻り値

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

例外

例

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 2009 C++11 std::out_of_range はスローされない(
std::strtoul または std::strtoull が errno を ERANGE に設定する場合)
スローされる

関連項目

(C++11) (C++11) (C++11)
文字列を符号付き整数に変換する
(関数)
(C++11) (C++11) (C++11)
文字列を浮動小数点値に変換する
(関数)