C言語 文字列を整数値( long型 )に変換 - stdlib.h - [ strtol ]
2008.11.01 Saturday | by LRESULT
文字列を整数値( long型 )に変換するには、strtol()を使います。
書式 | long strtol( const char *s, char **ends, int base ) |
---|---|
機能 | 文字列を整数値( long型 )に変換 |
引数 | const char *s : 変換元も文字列 char **ends : 変換が不可能だった文字列を格納するポインタ int base : 基数 0を指定すると、文字列の先頭に0x or 0Xがあると16進数として変換し、 0から始まる数値なら8進数として変換し、それ以外は10進数として変換します。 また、2〜36を指定すると、指定された n進数で変換します。 |
戻り値 | long型に変換された値 |
引数の int baseは、どの進数として文字列を変換するかを指定します。
文字列である「123ABC」を、long型の「123」に変換し、 変換出来なかった文字列「ABC」を確認してみます。 |
---|
#include <stdio.h> |
変換元の文字列:123ABC long型に変換された値:123 変換出来なかった文字列:ABC |
---|
というように、表示されます。 strtolの第3引数に0を指定した為、文字列を10進数と判定し 123として変換されています。 |
次に、16進数の値がある文字列「0xFF ABC」を、long型の整数に変換してみます。 |
---|
#include <stdio.h> |
変換元の文字列:0xFF ABC long型に変換された値:255 変換出来なかった文字列:ABC |
---|
と、いうことになります。 0xFFを16進数と判定し、整数値の 255に変換しています。 |