atol() - atoll() — 文字ストリングの long 型整数または long long 型整数への変換

形式 (atol())

#include <stdlib.h>
long int atol(const char *string);

形式 (atoll())

#include <stdlib.h>
long long int atoll(const char *string);

言語レベル

ANSI

スレッド・セーフ

はい

ロケール依存

これらの関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーの影響を受ける可能性があります。 詳しくは、 CCSID とロケールについてを参照してください。

説明

atol() 関数は、文字ストリングを long 値に変換します。 atoll() 関数は、文字ストリングを long long 値に変換します。

入力データ string は、指定した戻りの型の数値として解釈できる文字のシーケンスです。 関数によって、数値の一部として認識できない入力ストリングは、先頭文字 のところで読み取りが停止されます。 この文字は、ストリングを終了するヌル文字が可能です。

atol() および atoll() 関数は、小数点または指数を認識しません。 この関数の string 引数の形式は次のとおりです。

構文図を読むビジュアル構文図をスキップwhitespace+-数字

ここで、 whitespace は、スペースやタブなど、 isspace() 関数が真である文字と同じ文字で構成されます。 atol() 関数と atoll() 関数は、先頭の空白文字を無視します。 値 digits は、1 桁以上の小数桁数です。

戻り値

atol() 関数と atoll() 関数は、入力文字を数値として解釈することによって生成される long または long long 値を返します。 関数が入力データをその型の値に変換できない場合は、戻り値は 0L です。 オーバーフローの場合、戻り値は予期できません。

この例は、ストリングとして格納された数を、数値に変換する方法を示しています。
#include <stdlib.h>
#include <stdio.h>
 
int main(void)
{
    long l;
    char *s;
 
    s = "98854 dollars";
    l = atol(s);     /* l = 98854 */
 
    printf("l = %.ld\n",l);
}
 
/*******************  Output should be similar to:  ***************
 
l = 98854
*/

関連情報