C ++文字列変換(stoi; stol; stoul; stoll; stoull; stof; stod; stold)



C String Conversion Stoi



転載: C ++文字列変換(stoi stol stoul stoll stoull stof stod stold)

ヘッダーファイル文字列



double stod (const string& str, size_t* idx = 0) double stod (const wstring& str, size_t* idx = 0)

文字列をdoubleに変換する
strを解析して、その内容を浮動小数点数として解釈すると、値はdouble値として返されます。

idxがnullポインターでない場合、関数はidxの値を数値の後のstrの最初の文字の位置にも設定します。



この関数は、strtod(またはwcstod)を使用して変換を実行します(このプロセスの詳細については、strtodを参照してください)。これらの関数で受け入れられる形式は、現在のロケールによって異なることに注意してください。

パラメータ

  1. p
    浮動小数点表現の文字列オブジェクト。
  2. idx
    関数によって値がstr内の次の文字位置の値に設定されるsize_t型のオブジェクトへのポインタ。
    このパラメーターは、ヌルポインターにすることもできます。その場合、このパラメーターは使用されません。

戻り値

成功すると、関数は変換された浮動小数点数をdouble値として返します。

// stod example #include // std::cout #include // std::string, std::stod

int main()
{{
std :: string軌道(「365.24 29.53」)
std :: string :: size_type sz // size_tのエイリアス



ダブルアース= std :: stod(orbits、&sz)
ダブルムーン= std :: stod(orbits.substr(sz))
std :: cout<< “The moon completes ' << (earth/moon) << ' orbits per Earth year. ”
0を返す
}

  • 1
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 十一
  • 12
  • 13
  • 14

画像

複雑さ

指定されていませんが、通常、解釈される文字数は線形です。

データ範囲

idxが指す値を変更します(ゼロでない場合)。

異常な

変換を実行できない場合、invalid_argument例外がスローされます。
読み取られた値がdoubleの表現可能な値の範囲を超えると(一部のライブラリ実装では、これにはアンダーフローが含まれます)、out_of_range例外がスローされます。
無効なidxは、未定義の動作を引き起こします。

8、盗まれた

ヘッダーファイル文字列

long double stold (const string& str, size_t* idx = 0) long double stold (const wstring& str, size_t* idx = 0)

文字列をlongdoubleに変換します
strを解析して、その内容を浮動小数点数として解釈すると、値はlongdouble型として返されます。

idxがnullポインターでない場合、関数はidxの値を数値の後のstrの最初の文字の位置にも設定します。

この関数は、strtold(またはwcstold)を使用して変換を実行します(このプロセスの詳細については、strtodを参照してください)。

パラメータ

  1. p
    浮動小数点表現の文字列オブジェクト。
  2. idx
    関数によって値がstr内の次の文字位置の値に設定されるsize_t型のオブジェクトへのポインタ。
    このパラメーターは、ヌルポインターにすることもできます。その場合、このパラメーターは使用されません。

戻り値

成功すると、関数は変換された浮動小数点数をlongdouble値として返します。

// stold example #include // std::cout #include // std::string, std::stod

int main()
{{
std :: string軌道(「90613.305365.24」)
std :: string :: size_type sz // size_tのエイリアス

long double pluto = std :: stod(orbits、&sz)
長い二重地球= std :: stod(orbits.substr(sz))
std :: cout<< “Pluto takes ' << (pluto/earth) << ' years to complete an orbit. ”
0を返す
}

  • 1
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 十一
  • 12
  • 13
  • 14

画像

複雑さ

指定されていませんが、通常、解釈される文字数は線形です。

データ範囲

idxが指す値を変更します(ゼロでない場合)。

異常な

変換を実行できない場合、invalid_argument例外がスローされます。
読み取られた値が表現可能な値の範囲を超えると(一部のライブラリ実装では、これにはアンダーフローが含まれます)、out_of_range例外がスローされます。
無効なidxは、未定義の動作を引き起こします。