文字列を整数型に変換する
atoi、atof、_atoi64、atol
【書式】
double atof( const char *string );
int atoi( const char *string );
__int64 _atoi64( const char *string );
long atol( const char *string );
【引数】
string 変換する文字列
【戻り値】
成功時 入力された文字を数字として解釈し、生成したdouble、int、_int64、long 整数値を返します。
入力がその型の値に変換できないときは、戻り値として、0(atoi関数と_atoi64関数)、
0L(atol関数)、または0.0(atof関数)を返します。
失敗時 オーバーフローが発生したときの戻り値は未定義です。
【機能】
文字列を倍精度浮動小数点値[double](atof 関数)、整数値[int](atoi関数)、
または long整数値[long int](atol関数と_atoi64関数)に変換します。
入力は、指定された型の数値として解釈できる文字列です。
出力は、実行時のロケールの LC_NUMERIC カテゴリの設定に影響されます。
LC_NUMERIC カテゴリの詳細については、setlocale関数を参照してください。
atof関数で処理できる文字列のサイズは、100文字に制限されています。
この関数は、数の一部として認識できない文字を最初に読み込んだ時点で、
入力文字列の読み込みを停止します。文字列を終了するNULL文字('\0')に遭遇した場合も停止します。
【インクルードファイル】
atoi、_atoi64、atol関数関数 stdlib.h
atof関数関数 math.h と stdlib.h
【必要追加ライブラリ】
なし
使用例
〈サンプルプログラム〉
/*
* atof、atoi、atolの各関数を使って、
* 文字列として格納されている数を数値に変換します。
*/
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *s;
double x;
int i;
long l;
s = " -2309.12E-15"; /* atof のテスト */
x = atof(s);
printf("atof 関数のテスト: 文字列: %s\t浮動小数点値: %e\n", s, x);
s = "7.8912654773d210"; /* atof のテスト */
x = atof(s);
printf("atof 関数のテスト: 文字列: %s\t浮動小数点値: %e\n", s, x);
s = " -9885 pigs"; /* atoi のテスト */
i = atoi(s);
printf("atoi 関数のテスト: 文字列: %s\t\t整数値 : %d\n", s, i);
s = "98854 dollars"; /* atol のテスト */
l = atol(s);
printf("atol 関数のテスト: 文字列: %s\tlong整数値 : %ld\n", s, l);
return 0;
}
〈出力〉
atof 関数のテスト: 文字列: -2309.12E-15 浮動小数点値: -2.309120e-012 atof 関数のテスト: 文字列: 7.8912654773d210 浮動小数点値: 7.891265e+210 atoi 関数のテスト: 文字列: -9885 pigs 整数値 : -9885 atol 関数のテスト: 文字列: 98854 dollars long整数値 : 98854