long strtol( const char *nptr, char **endptr, int base );Parameters: nptr:Null-terminated string to convert endptr:Pointer to character that stops scan base:Number base to use
char a[10]="7F8D7B4A"; DWORD val = strtoul( a, NULL, 16);
long l = strtoul("7F",NULL,16);
CString aa="C010"; int x; sscanf(aa,"%x",&x);
unsigned long strtoul( const char *nptr, char **endptr, int base ); MSDN上有
#include <stdlib.h> #include <stdio.h>void main( void ) { char *string, *stopstring; double x; long l; int base; unsigned long ul; string = "3.1415926This stopped it"; x = strtod( string, &stopstring ); printf( "string = %s\n", string ); printf(" strtod = %f\n", x ); printf(" Stopped scan at: %s\n\n", stopstring ); string = "-10110134932This stopped it"; l = strtol( string, &stopstring, 10 ); printf( "string = %s", string ); printf(" strtol = %ld", l ); printf(" Stopped scan at: %s", stopstring ); string = "10110134932"; printf( "string = %s\n", string ); /* Convert string using base 2, 4, and 8: */ for( base = 2; base <= 8; base *= 2 ) { /* Convert the string: */ ul = strtoul( string, &stopstring, base ); printf( " strtol = %ld (base %d)\n", ul, base ); printf( " Stopped scan at: %s\n", stopstring ); } } Outputstring = 3.1415926This stopped it strtod = 3.141593 Stopped scan at: This stopped itstring = -10110134932This stopped it strtol = -2147483647 Stopped scan at: This stopped itstring = 10110134932 strtol = 45 (base 2) Stopped scan at: 34932 strtol = 4423 (base 4) Stopped scan at: 4932 strtol = 2134108 (base 8) Stopped scan at: 932
nptr:Null-terminated string to convert
endptr:Pointer to character that stops scan
base:Number base to use
DWORD val = strtoul( a, NULL, 16);
int x;
sscanf(aa,"%x",&x);
const char *nptr,
char **endptr,
int base
);
MSDN上有
#include <stdio.h>void main( void )
{
char *string, *stopstring;
double x;
long l;
int base;
unsigned long ul;
string = "3.1415926This stopped it";
x = strtod( string, &stopstring );
printf( "string = %s\n", string );
printf(" strtod = %f\n", x );
printf(" Stopped scan at: %s\n\n", stopstring );
string = "-10110134932This stopped it";
l = strtol( string, &stopstring, 10 );
printf( "string = %s", string );
printf(" strtol = %ld", l );
printf(" Stopped scan at: %s", stopstring );
string = "10110134932";
printf( "string = %s\n", string );
/* Convert string using base 2, 4, and 8: */
for( base = 2; base <= 8; base *= 2 )
{
/* Convert the string: */
ul = strtoul( string, &stopstring, base );
printf( " strtol = %ld (base %d)\n", ul, base );
printf( " Stopped scan at: %s\n", stopstring );
}
}
Outputstring = 3.1415926This stopped it
strtod = 3.141593
Stopped scan at: This stopped itstring = -10110134932This stopped it strtol = -2147483647 Stopped scan at: This stopped itstring = 10110134932
strtol = 45 (base 2)
Stopped scan at: 34932
strtol = 4423 (base 4)
Stopped scan at: 4932
strtol = 2134108 (base 8)
Stopped scan at: 932