Top: Basic types: string: Conversion
#include <ptypes.h> string itostring(<ordinal> value); string itostring(<ordinal> value, int base, int width = 0, char pad = ' '); large stringtoi(const string& s); large stringtoie(const string& s); ularge stringtoue(const string& s, int base); string lowercase(const string& s);
PTypes provides 3 different string-to-int conversion functions: stringtoi(),
stringtoie() and stringtoue().
The first function stringtoi() is for non-negative decimal
numbers; it returns -1 on error. The other two functions with a suffix 'e' in
their names ('e' is for 'exception') may throw exceptions, but they accept the
full range of 64-bit values.
These functions replace the CRTL functions atoll() and strtoll() which are not implemented on all systems.
Both function families, string-to-int and int-to-string, accept numeration
bases in the range 2 to 64. The 64-digit numeration uses all digits, letters and
also '.' and '/'. It may be useful for representing, for example, MD5 checksums
in a compact printable form (see function outmd5::get_digest()
in src/pmd5.cxx).
string itostring(<ordinal> value) converts the given ordinal value to a string. Various overloaded versions of this function accept ordinal values of different sizes and signness.
string itostring(<ordinal> value, int base, int width = 0, char pad = ' ') converts an integer value to a string with the numeration base specified by base, which can be in the range 2 - 64. To right-justify the resulting string you can specify width and pad parameters. If the numeration base is greater than 36 in addition to digits and letters itostring() uses '.' and '/' characters and also lowercase letters. For numeration bases other than 10 the parameter value is always treated as unsigned.
large stringtoi(const string& s) converts a string to a 64-bit integer. This function accepts only positive decimal large numbers and 0. It returns -1 if the string does not represent a valid positive number or an overflow occurred.
large stringtoie(const string& s) converts a string to a 64-bit integer. This function accepts signed decimal large numbers. Unlike stringtoi(), this function may throw an exception of type (econv*) if the string does not represent a valid number or an overflow occurred.
unsigned large stringtoue(const string& s, int base) converts a string to an unsigned 64-bit integer using the numeration base specified by base. This function accepts unsigned large numbers. It may throw an exception of type (econv*) if the string does not represent a valid number or an overflow occurred. Base can be in the range 2 - 64. For numeration bases from 2 to 36 this function uses digits and letters, and the letter case is insignificant. For numeration bases grater than 36, '.', '/' and lowercase letters are used additionaly.
string lowercase(const string& s) converts all characters of the given string s to lower case. The current version of the library "understands" only lower ASCII characters; all other characters remain unchanged. This function can effectively detect if all characters in the string are already in lower-case to avoid unnecessary string allocations.
See also: Constructors/destructors, Operators, Typecasts, Manipulation