There are many applications that store numbers in strings that also contain text. For example, some databases store dates as strings in the form of "01Jan".
You can extract the number from a string by using the standard function strtol() ("string to long").
long strtol( const char *nptr, char **endptr, int base );
nptr
Null-terminated string to convert
endptr
Pointer to character that stops scan
base
Number base to use
The strtol function converts nptr to a long. strtol stops reading the string nptr at the first character it cannot recognize as part of a number.
In the following example, strtol() extracts the number 14 from the string "14-Feb" and assigns that number to n:
#include "stdafx.h"
#include
int main(int argc, char* argv[])
{
char s[] = "14-Feb";
long n = strtol(s, NULL, 0); //n = 14
return 0;
}
In this example, the radix is decimal. However, you can specify any radix between 2 through 36 as the third argument of strtol(). Alternatively, you can let strtol() deduce the radix automatically according to the numeric characters it reads from the scanned string by supplying 0 as the radix value.
No comments:
Post a Comment