文字列を倍精度浮動小数点数,long 型整数,及び,unsigned long 型整数に変換します
#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