atof関数はdouble型の浮動小数点実数に、atoi関数はint型整数に、atol関数はlong int型整数に、文字列を変換します。指定された文字列が数値に変換できるか否かのチェックは行いません。
#include <stdlib.h>
double atof(const char *nptr);
int atoi(const char *nptr);
long atol(const char *nptr);
*nptrは数値に変換する文字列を指定します。
戻り値として、変換結果を返します。
プログラム 例
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char *StrChomp(char *); /* 改行削除 */ char buff[100]; while(1) { printf('整数値に変換する文字列を入力してください ==> '); fgets(buff, 100, stdin); StrChomp(buff); if (strcmp(buff, 'end') != 0) { printf('%s --> %d\n', buff, atoi(buff)); } else { break; } } return 0; } /* 改行削除 */ char *StrChomp(char *str) { char *str_p;; for (str_p = str; *str_p; ++str_p) ; if (*(str_p - 1) == '\n') { *(str_p - 1) = '\0'; } return str; }
例の実行結果
$ ./atox.exe 整数値に変換する文字列を入力してください ==> 123 123 --> 123 整数値に変換する文字列を入力してください ==> 0123 0123 --> 123 整数値に変換する文字列を入力してください ==> 123 123 --> 123 整数値に変換する文字列を入力してください ==> +123 +123 --> 123 整数値に変換する文字列を入力してください ==> -123 -123 --> -123 整数値に変換する文字列を入力してください ==> 123.45 123.45 --> 123 整数値に変換する文字列を入力してください ==> 0.123 0.123 --> 0 整数値に変換する文字列を入力してください ==> 0x123 0x123 --> 0 整数値に変換する文字列を入力してください ==> 1a2 1a2 --> 1 整数値に変換する文字列を入力してください ==> a1 a1 --> 0 整数値に変換する文字列を入力してください ==> 123*45 123*45 --> 123 整数値に変換する文字列を入力してください ==> end $