std:: stoul, std:: stoull
|
ヘッダーで定義
<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) 型の内部ポインタとする。
空白文字(
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 | - | 基数 |
戻り値
指定された符号なし整数型に変換された文字列。
例外
- std::invalid_argument 変換が実行できない場合。
- std::out_of_range 変換された値が結果型の範囲外となる場合、または基底関数( std::strtoul または std::strtoull )が errno を ERANGE に設定した場合。
例
|
このセクションは不完全です
理由: 例がありません |
不具合報告
以下の動作変更の欠陥報告書は、以前に公開された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)
|
文字列を浮動小数点値に変換する
(関数) |