#include <stdlib.h> long strtol(const char *str, char **stop, ind base) str : 変換される文字列 stop : 変換の終了位置を示すポインタを受け取るメモリへのポインタ base : 2 ~ 36 : 基数 0x, 0X : 16 進数 0*, 0* : 8 進数
#include <stdio.h> #include <stdlib.h> int main() { char *s,*stop; double x; long l; unsigned long u; s = " -2309.12e-15double"; /* doubleへの変換 */ x = strtod(s, &stop); printf("文字列=%s 数値=%e\n", s, x); printf(" 変換停止位置=%s\n", stop); s = " 1101long"; /* long intへの変換 */ l = strtol(s, &stop, 2); printf("文字列=%s 数値=%ld\n", s, l); printf(" 変換停止位置=%s\n", stop); s = " 1234567890unsigned long"; /* unsigned longへの変換 */ u = strtoul(s, &stop, 10); printf("文字列=%s 数値=%ld\n", s, u); printf(" 変換停止位置=%s\n", stop); return 0; }
文字列= -2309.12e-15double 数値=-2.309120e-12 変換停止位置=double 文字列= 1101long 数値=13 変換停止位置=long 文字列= 1234567890unsigned long 数値=1234567890 変換停止位置=unsigned long
菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |