Root/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | < html > <!-- #BeginTemplate "/Templates/tmpl.dwt" --> <!-- DW6 --> < head > <!-- #BeginEditable "doctitle" --> < title >PTypes: string: conversion</ title > <!-- #EndEditable --> < meta http-equiv = "Content-Type" content = "text/html; charset=iso-8859-1" > < link rel = "stylesheet" href = "styles.css" > </ head > < body bgcolor = "#FFFFFF" leftmargin = "40" marginwidth = "40" > < p >< a href = "../index.html" >< img src = "title-21.png" width = "253" height = "39" alt = "C++ Portable Types Library (PTypes) Version 2.1" border = "0" ></ a > < hr size = "1" noshade> <!-- #BeginEditable "body" --> < p class = "hpath" >< a href = "index.html" >Top</ a >: < a href = "basic.html" >Basic types</ a >: < a href = "string.html" >string</ a >: Conversion</ p > < blockquote > < pre class = "lang" >#include < ptypes.h > string itostring(< i >< ordinal </i>> value); string itostring(< i >< ordinal </i>> 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); </ pre > </ blockquote > < p >< br > PTypes provides 3 different string-to-int conversion functions: < span class = "lang" >stringtoi()</ span >, < span class = "lang" >stringtoie()</ span > and < span class = "lang" >stringtoue()</ span >. The first function < span class = "lang" >stringtoi()</ span > 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.</ p > < p >These functions replace the CRTL functions < span class = "lang" >atoll()</ span > and < span class = "lang" >strtoll()</ span > which are not implemented on all systems.</ p > < p >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 < span class = "lang" >outmd5::get_digest()</ span > in src/pmd5.cxx).< br > </ p > < p >< span class = "def" >string itostring(< i >< ordinal ></ i > value)</ span > converts the given ordinal < span class = "lang" >value</ span > to a string. Various overloaded versions of this function accept ordinal values of different sizes and signness.</ p > < p >< span class = "def" >string itostring(< i >< ordinal </i>> value, int base, int width = 0, char pad = ' ')</ span > converts an integer value to a string with the numeration base specified by < span class = "lang" >base</ span >, which can be in the range 2 - 64. To right-justify the resulting string you can specify < span class = "lang" >width</ span > and < span class = "lang" >pad</ span > parameters. If the numeration base is greater than 36 in addition to digits and letters < span class = "lang" >itostring()</ span > uses '.' and '/' characters and also lowercase letters. For numeration bases other than 10 the parameter < span class = "lang" >value</ span > is always treated as unsigned.</ p > < p >< span class = "def" >large stringtoi(const string& s)</ span > converts a string to a 64-bit integer. This function accepts only < b >positive decimal large numbers</ b > and 0. It returns -1 if the string does not represent a valid positive number or an overflow occurred.</ p > < p >< span class = "def" >large stringtoie(const string& s)</ span > converts a string to a 64-bit integer. This function accepts < b >signed decimal large numbers</ b >. Unlike < span class = "lang" >stringtoi()</ span >, this function may throw an exception of type < span class = "lang" >(econv*)</ span > if the string does not represent a valid number or an overflow occurred.</ p > < p >< span class = "def" >unsigned large stringtoue(const string& s, int base)</ span > converts a string to an unsigned 64-bit integer using the numeration base specified by < span class = "lang" >base</ span >. This function accepts < b >unsigned large numbers</ b >. It may throw an exception of type < span class = "lang" >(econv*)</ span > if the string does not represent a valid number or an overflow occurred. < span class = "lang" >Base</ span > 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.</ p > < p >< span class = "def" >string lowercase(const string& s)</ span > converts all characters of the given string < span class = "lang" >s</ span > 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. </ p > < p class = "seealso" >See also: < a href = "string.constructors.html" >Constructors/destructors</ a >, < a href = "string.operators.html" >Operators</ a >, < a href = "string.typecasts.html" >Typecasts</ a >, < a href = "string.manipulation.html" >Manipulation</ a > </ p > <!-- #EndEditable --> < hr size = "1" > < a href = "../index.html" class = "ns" >PTypes home</ a > </ body > <!-- #EndTemplate --> </ html > |
Source at commit 8edbcdac0d39 created 11 years 11 months ago. By Nathan Adams, initial commit |
---|