標準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 charstr