nlib
StrTo.h ファイル

strtol, strtoul等のC標準関数を安全に利用するためのラッパ関数群です。 [詳解]

#include "nn/nlib/Config.h"

[ソースコード]

名前空間

 nn::nlib
 共通して使われる機能やプラットフォームへの依存度が高い機能が実装されます。 nlib Platform APIs も御覧ください。nlib_nsはエイリアスです。
 

関数

errno_t nn::nlib::StrTo (const char *s, int base, int32_t *v) noexcept
 文字列sint32_t型の整数に変換します。 [詳解]
 
errno_t nn::nlib::StrTo (const char *s, int base, int64_t *v) noexcept
 文字列sint64_t型の整数に変換します。 [詳解]
 
errno_t nn::nlib::StrTo (const char *s, int base, uint32_t *v) noexcept
 文字列suint32_t型の整数に変換します。 [詳解]
 
errno_t nn::nlib::StrTo (const char *s, int base, uint64_t *v) noexcept
 文字列suint64_t型の整数に変換します。 [詳解]
 
errno_t nn::nlib::StrTo (const char *s, double *v) noexcept
 文字列sdouble型に変換します。 [詳解]
 
errno_t nn::nlib::StrTo (const char *s, float *v) noexcept
 文字列sをfloat型に変換します。 [詳解]
 
errno_t nn::nlib::StrTo (const char *s, int base, int8_t *v) noexcept
 文字列sint8_t型の整数に変換します。 [詳解]
 
errno_t nn::nlib::StrTo (const char *s, int base, int16_t *v) noexcept
 文字列sint16_t型の整数に変換します。 [詳解]
 
errno_t nn::nlib::StrTo (const char *s, int base, uint8_t *v) noexcept
 文字列suint8_t型の整数に変換します。 [詳解]
 
errno_t nn::nlib::StrTo (const char *s, int base, uint16_t *v) noexcept
 文字列suint16_t型の整数に変換します。 [詳解]
 

詳解

strtol, strtoul等のC標準関数を安全に利用するためのラッパ関数群です。

説明
strtol, strtoul等の標準関数は文字列を数値に変換するためのポピュラーな方法ですが、以下の点に気をつける必要があります。
  • 呼び出し前にerrno=0 を設定しておく必要がある。これはstrtol, strtoul等がerrno をセットし正規の返り値の範囲にあるエラー値を返すことがあるため。
  • strtol, strtoul等が先頭の空白をスキップすること
  • strtol, strtoul等でそれぞれエラー値が異なること
  • strtoulの場合、負の数がエラーにならない場合があること
ここで実装されているラッパ関数群を利用すると、上記のような煩雑な問題を隠蔽することで直観的に変換を記述することができます。

StrTo.h に定義があります。