全て、
atol や atoi など、文字列が数値かどうかをチェックして変換する関数... atol の説明で c/c++ リファレンスをチェックインしたところ、文字列に数値がない場合はこのように記述されていました。
変換は実行されず、ゼロが返されます。
明らかに、渡された文字列が"0"
そうである場合、これは曖昧である可能性があり、atol は前のケースと同じようにゼロを返します。
関数のシグネチャは int atoi() または long atol() であるため、戻り値は int または long である可能性があるため、戻り値はすべての場合で実際の int の戻り値と一致します。(atoi が負を返しても意味します)数値以外の文字列の値 この戻り値は、この値自体の文字列の変換と一致します) あいまいさが持続します
文字列が数値であるか、この関数を使用していないかどうかをチェックするのは安全ではありませんか? この場合の良い解決策は何ですか?