char*型(文字列)から10進整数(int)へと変換[C言語]
char*型から10進整数(int)へと変換するライブラリ関数として、atoi関数があります。 使用するにはstdlib.hをインクルードします。形式は次の通りです。
int atoi(const char *s);
とりあえずconstは無視して下さい。引数に指定した文字列を、10進整数に変換して戻り値として返します。10進整数 ですから’0’~’9’以外の文字が含まれていてはいけません。ただし、先頭部分に空白があるのは構いません。ちなみにatoiという 名前は、「Ascii to Integer(ASCII文字から数値へ)」から来ています。
次のように使います。
#include <stdio.h> #include <stdlib.h> int main(void) { char *str = "100"; int num; num = atoi(str) + 100; /* "100"を10進数の100に変換して、更に+100 */ printf( "%d\n", num ); /* 200と表示 */ return 0; } |
また、文字列をlong int型に変換するatol関数というものもあります。 使い方は全く同じで、戻り値はlong int型になります。int型とlong int型のサイズが同じ環境では、atoi関数と 全く同じ結果になります。
引用:http://www.geocities.jp/ky_webid/c/044.html