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

おすすめ

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください