標準Cライブラリは機能strtof
しstrtod
、次のシグネチャを持っています。
float strtof(const char *str, char **endptr);
double strtod(const char *str, char **endptr);
それらはそれぞれ、入力文字列str
を3つの部分に分解します。
- 最初の、おそらく空の空白のシーケンス
- 浮動小数点値を表す文字の「サブジェクトシーケンス」
- 認識されない(変換に影響を与えない)文字の「トレーリングシーケンス」。
でない場合endptr
はNULL
、*endptr
変換の一部であった最後の文字の直後の文字へのポインターに設定されます(つまり、末尾のシーケンスの開始)。
私は疑問に思っています:endptr
それでは、なぜ非const
char
ポインタへのポインタなのですか?文字列(入力文字列)*endptr
へのポインタではありませんか?const
char
str