文字列を整数(long型)へ変換し,最終文字列へのポインタを格納します。
long strtol(const char *str, char **ptr, int base);
部分文字列が変換できた場合,変換された値を返します。変換できなかった場合,0を返します。
オーバーフローが生じる(変換された値が大きすぎる)場合,LONG_MAX,またはLONG_MINを返し,マクロERANGEをグローバル変数errnoにセットします。
strの指す文字列の最初の部分をlong型の表現に変換します。まず,入力文字を次の3つの部分,“最初の空白類”,“baseの値により定められる基数において表現され,整数にする対象となる列”,“(null文字(\0)を含む)最後の1個以上の認識されない文字列”に分割します。その後,対象となる列を整数へ変換し,その結果を返します。
対象となる文字列の予期される形式は,オプショナルな+符号,または-符号,16進数であることを示す“0x”を前に持つ整数の形式となります。
対象となる文字列の予期される形式は,オプショナルな+符号,または-符号を前に持ち,baseによって基数が指定された整数を表す文字列,または数字列となります。“a”(または“A”)から“z”(または“Z”)までの英字は10から35までの値を示すものとみなされます。与えられた値がbaseよりも小さい英字しか使用できません。
“0x”が文字と数字の列の前(符号が存在する場合は符号の後ろ)に置かれます(省略可能)。
対象となる列が予期される形式を持ち,かつ,baseの値が0の場合,入力文字列から基数を判断します。0xが先行する文字列は,16進数数値とみなされ,先行0が付いていてxが付いていない文字列は8進数としてみなされます。他の文字列はすべて10進数としてみなされます。 |