標準関数 atoi
型式 int atoi(const char* str);
str : 数字の文字列
#include <stdlib.h>
void main(void) {
int wint;
long wlong;
wint = atoi("1");
printf("#1:%d\n", wint);
wint = atoi("12345");
printf("#2:%d\n", wint);
wint = atoi("-12345");
printf("#3:%d\n", wint);
wint = atoi("12.345");
printf("#4:%d\n", wint);
wint = atoi("0.555");
printf("#5:%d\n", wint);
wint = atoi("1234567890");
printf("#6:%d\n", wint);
printf("int=%d\n", sizeof(wint));
}
実行結果
1:1
2:12345
3:-12345
4:12
5:0
int=4
atoi は、文字列を int に変換する関数です。
マイナスは変換できますが、小数点以下の数字はカットされます。
昔の16bitのときは int は 2バイトでしたが、32bitになって 4バイトになりました。
ある程度の大きさを使用する場合は、自分でサイズを確認するようにしてください。
標準関数 atol
型式 long int atol(const char *str);
str : 数字の文字列
#include <stdlib.h>
void main(void) {
long wlong;
wlong = atol("1");
printf("#1:%d\n", wlong);
wlong = atol("12345");
printf("#2:%d\n", wlong);
wlong = atol("-12345");
printf("#3:%d\n", wlong);
wlong = atol("12.345");
printf("#4:%d\n", wlong);
wlong = atol("0.555");
printf("#5:%d\n", wlong);
wlong = atol("1234567890");
printf("#6:%d\n", wlong);
printf("long=%d\n", sizeof(wlong));
}
実行結果
1:1
2:12345
3:-12345
4:12
5:0
long=4
atoi 関数と結果は同じです。
標準関数 atof
型式 double atof(const char *str);
str : 数字の文字列
#include <stdio.h>
#include <stdlib.h>
int main(void) {
printf("%f\n", atof("1"));
printf("%f\n", atof("0.1234567890"));
printf("%f\n", atof("123.45678"));
printf("%f\n", atof("-123.45678"));
}
実行結果
1.000000
0.123457
123.456780
-123.456780