strtoiThe standard function strtoi provides the following interface:
type Strtoi_Result =
struct
{
uint<64> off;
int<64> val;
};
fun strtoi = (string str, int base = 10, ulong start = 0) Stroi_Result: { … }
It parses a signed integral number in the given base in the
string str at position start and returns its value and its
length in the val and off fields of a new
Strtoi_Result instance.
Specifying a start that is greater than or equal to the length
of the string causes a E_out_of_bound exception to be raised.
The accepted values for base are 2, 8, 10
(the default) and 16. If any other base is requested an
E_inval exception is raised.
Note that this function parses an integer but permits more characters to follow the given integer. As an example, take a look at parsing “12foo” in base 16:
#!!# strtoi ("12foo", 16)
Strtoi_Result {
off=3UL,
val=303L
}
#!!# strtoi ("12foo", 16, 1)
Strtoi_Result {
off=3UL,
val=47L
}