Sophie

Sophie

distrib > Mandriva > 2010.1 > i586 > by-pkgid > 4f5f2dc0f55b453456458df885792b0b > files > 402

ucommon-doc-5.0.4-1mdv2010.2.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>ucommon: ucommon::string Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="a00208.html">ucommon</a>::<a class="el" href="a00148.html">string</a>
  </div>
</div>
<div class="contents">
<h1>ucommon::string Class Reference</h1><!-- doxytag: class="ucommon::string" --><!-- doxytag: inherits="ucommon::ObjectProtocol" -->
<p>A copy-on-write string class that operates by reference count.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00201_source.html">string.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ucommon::string:</div>
<div class="dynsection">
<div class="center"><img src="a00539.png" border="0" usemap="#ucommon_1_1string_inherit__map" alt="Inheritance graph"/></div>
<map name="ucommon_1_1string_inherit__map" id="ucommon_1_1string_inherit__map">
<area shape="rect" id="node5" href="a00082.html" title="A string class that uses a cstring buffer that is fixed in memory." alt="" coords="29,155,232,181"/><area shape="rect" id="node9" href="a00169.html" title="A copy&#45;on&#45;write utf8 string class that operates by reference count." alt="" coords="256,155,437,181"/><area shape="rect" id="node2" href="a00095.html" title="A common base class for all managed objects." alt="" coords="113,5,364,32"/><area shape="rect" id="node7" href="a00150.html" title="A string class that has a predefined string buffer." alt="" coords="5,229,256,256"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for ucommon::string:</div>
<div class="dynsection">
<div class="center"><img src="a00540.png" border="0" usemap="#ucommon_1_1string_coll__map" alt="Collaboration graph"/></div>
<map name="ucommon_1_1string_coll__map" id="ucommon_1_1string_coll__map">
<area shape="rect" id="node2" href="a00095.html" title="A common base class for all managed objects." alt="" coords="5,5,256,32"/><area shape="rect" id="node6" href="a00039.html" title="A base class for reference counted objects." alt="" coords="123,83,365,109"/><area shape="rect" id="node4" href="a00149.html" title="This is an internal class which contains the actual string data along with some control..." alt="" coords="120,160,381,187"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00149.html">cstring</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is an internal class which contains the actual string data along with some control fields.  <a href="a00149.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a5e893fe6930a00253a8c73ab860a5f5d">add</a> (char character)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a single character to our string buffer.  <a href="#a5e893fe6930a00253a8c73ab860a5f5d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a4cba3bb894982985844e05b62f1d0253">add</a> (const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append null terminated text to our string buffer.  <a href="#a4cba3bb894982985844e05b62f1d0253"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aa9dcf23de080193f9d5f4089a9d3236b">at</a> (int position) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return character found at a specific position in the string.  <a href="#aa9dcf23de080193f9d5f4089a9d3236b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a4b9249dc7905d80ad6b261cf4612558e">begin</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get pointer to first character in string for iteration.  <a href="#a4b9249dc7905d80ad6b261cf4612558e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#abf30ccd6cf0c3a7b36943c712e8f8181">c_mem</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get memory text buffer of string object.  <a href="#abf30ccd6cf0c3a7b36943c712e8f8181"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a56c42ee4aba4a888818c3877c56a9e89">c_str</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get character text buffer of string object.  <a href="#a56c42ee4aba4a888818c3877c56a9e89"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aba570af28140a5fb90e7751bdb71a985">ccount</a> (const char *list) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count number of occurrences of characters in string.  <a href="#aba570af28140a5fb90e7751bdb71a985"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a68ff1b3ab49dce4fffdc6fb61b2fde65">chop</a> (const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Chop trailing characters from the string.  <a href="#a68ff1b3ab49dce4fffdc6fb61b2fde65"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ac0e7f7a870283c8f1db8cdc420bb0f93">chr</a> (char character) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find pointer in string where specified character appears.  <a href="#ac0e7f7a870283c8f1db8cdc420bb0f93"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac61c039622d5684c3a1f67a0ae925664"></a><!-- doxytag: member="ucommon::string::clear" ref="ac61c039622d5684c3a1f67a0ae925664" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ac61c039622d5684c3a1f67a0ae925664">clear</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear string by setting to empty. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#abce9a220c1a74476d7164d1617a88f7d">clear</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> offset, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear a field of a filled string with filler.  <a href="#abce9a220c1a74476d7164d1617a88f7d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a178d708f8c2019954ea86a3688f77e3b">count</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count all characters in the string (strlen).  <a href="#a178d708f8c2019954ea86a3688f77e3b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a51e25b47ba92a37ae69aa4267b46f556">cut</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> offset, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cut (remove) text from string.  <a href="#a51e25b47ba92a37ae69aa4267b46f556"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a84132108ff738464103c226a0c4bb070">end</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get pointer to last character in string for iteration.  <a href="#a84132108ff738464103c226a0c4bb070"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aa08fece36d3d6583b04672bd98f1b181">fill</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get filler character used for field array strings.  <a href="#aa08fece36d3d6583b04672bd98f1b181"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a5b04cb01741b58bb0623573777bc1c51">find</a> (const char *list, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> offset=0) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a character in the string.  <a href="#a5b04cb01741b58bb0623573777bc1c51"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a15ed43df2287bf462b1ed3943dbc8960">first</a> (const char *list) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find first occurrence of a character in the string.  <a href="#a15ed43df2287bf462b1ed3943dbc8960"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a6638acfa2b89a224c222bbc17e43a5f0">full</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if the string's allocated space is all used up.  <a href="#a6638acfa2b89a224c222bbc17e43a5f0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ad2d52ee908980c305d6f9f383b940b66">get</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> offset, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size=0) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a new string object as a substring of the current object.  <a href="#ad2d52ee908980c305d6f9f383b940b66"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aac2d0db81ca3b197d140088d4b982642">last</a> (const char *list) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find last occurrence of a character in the string.  <a href="#aac2d0db81ca3b197d140088d4b982642"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a4edc4d417c7b09aa2bd1bc2dd9341b39">len</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get length of string.  <a href="#a4edc4d417c7b09aa2bd1bc2dd9341b39"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1242c79fffdf5eb4a51dbb6d7db8c36a"></a><!-- doxytag: member="ucommon::string::lower" ref="a1242c79fffdf5eb4a51dbb6d7db8c36a" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a1242c79fffdf5eb4a51dbb6d7db8c36a">lower</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert string to lower case. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ac41e7c98e016b50832c6ffd60d4ac8cb">offset</a> (const char *<a class="el" href="a00110.html">pointer</a>) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find offset of a pointer into our string buffer.  <a href="#ac41e7c98e016b50832c6ffd60d4ac8cb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ae8597b326d6bc4ee3066e275dee8b78f">operator bool</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if string has data.  <a href="#ae8597b326d6bc4ee3066e275dee8b78f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a160f3c7225d070fcd8a30ddcaeac32c4">operator const char *</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Casting reference to raw text string.  <a href="#a160f3c7225d070fcd8a30ddcaeac32c4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a16d8eb6eb71de29dd2036d05a871f471">operator!</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if string is empty.  <a href="#a16d8eb6eb71de29dd2036d05a871f471"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a923fe9ce098dbc95a5f05270c7b0ec62">operator!=</a> (const char *text) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare our object with null terminated text.  <a href="#a923fe9ce098dbc95a5f05270c7b0ec62"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a647aee2d28ad6eb2e6cfdf90af78915e">operator%</a> (const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse text from a string in a scan expression.  <a href="#a647aee2d28ad6eb2e6cfdf90af78915e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a30de0b46d69a0fcda721002a0ef8f18f">operator%</a> (double &amp;value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse double value from a string.  <a href="#a30de0b46d69a0fcda721002a0ef8f18f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a48407ff7fc9215593eaca48a43cf3608">operator%</a> (unsigned long &amp;value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse long integer value from a string.  <a href="#a48407ff7fc9215593eaca48a43cf3608"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a8ac55c830b24b32e8b743a20d49c5a2d">operator%</a> (long &amp;value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse long integer value from a string.  <a href="#a8ac55c830b24b32e8b743a20d49c5a2d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a89e28b802be601b26f01d7380bcc1c57">operator%</a> (unsigned short &amp;value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse long integer value from a string.  <a href="#a89e28b802be601b26f01d7380bcc1c57"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a743328c1762ce46b2bff080689139817">operator%</a> (short &amp;value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse short integer value from a string.  <a href="#a743328c1762ce46b2bff080689139817"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a68ae6d2638ddc59a85baba7e7a662a0e">operator&amp;</a> (const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Concatenate null terminated text to our object.  <a href="#a68ae6d2638ddc59a85baba7e7a662a0e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#adab43f47e887fd85c641f9cbbeaa44ef">operator()</a> (int offset) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reference a string in the object by relative offset.  <a href="#adab43f47e887fd85c641f9cbbeaa44ef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a4836156a7833e37354a0773c0427de04">operator()</a> (int offset, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a new substring through object expression.  <a href="#a4836156a7833e37354a0773c0427de04"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#af3c09cf0dd8225ce77ac16b14a7bfc6b">operator*</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reference raw text buffer by pointer operator.  <a href="#af3c09cf0dd8225ce77ac16b14a7bfc6b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ae96eab78d2ec2c7eb79362cfaabe01c1">operator+</a> (const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Concatenate null terminated text to our object.  <a href="#ae96eab78d2ec2c7eb79362cfaabe01c1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad0fd65e06b8c263c7beee12e9da5bb9e"></a><!-- doxytag: member="ucommon::string::operator++" ref="ad0fd65e06b8c263c7beee12e9da5bb9e" args="(void)" -->
<a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ad0fd65e06b8c263c7beee12e9da5bb9e">operator++</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete first character from string. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#af206c13f172ebbbaf6217f385f0b9994">operator+=</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> number)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a specified number of characters from start of string.  <a href="#af206c13f172ebbbaf6217f385f0b9994"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aa149ccdb34ee5e4f6cadad9ab9bafc48">operator+=</a> (const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Concatenate text to an existing string object.  <a href="#aa149ccdb34ee5e4f6cadad9ab9bafc48"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af06f54df970c44ff20b9ef87174e93d2"></a><!-- doxytag: member="ucommon::string::operator&#45;&#45;" ref="af06f54df970c44ff20b9ef87174e93d2" args="(void)" -->
<a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#af06f54df970c44ff20b9ef87174e93d2">operator--</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete last character from string. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a383cd1bcd332d72c4de5ad33d19a5162">operator-=</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> number)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a specified number of characters from end of string.  <a href="#a383cd1bcd332d72c4de5ad33d19a5162"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aac58ada0249880e0cf6480f5f6ecae1e">operator&lt;</a> (const char *text) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare our object with null terminated text.  <a href="#aac58ada0249880e0cf6480f5f6ecae1e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a399a26891f3b7b0705a16df58885776f">operator&lt;=</a> (const char *text) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare our object with null terminated text.  <a href="#a399a26891f3b7b0705a16df58885776f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a25b1611be64125a1cb119ff48fc3fc3e">operator=</a> (const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign text to our existing buffer.  <a href="#a25b1611be64125a1cb119ff48fc3fc3e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a6b26ada2bc4ddd598e9e424b6937c176">operator=</a> (const <a class="el" href="a00148.html">string</a> &amp;object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign our string with the cstring of another object.  <a href="#a6b26ada2bc4ddd598e9e424b6937c176"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#af4124c5c77277b95187b693127ec33ae">operator==</a> (const char *text) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare our object with null terminated text.  <a href="#af4124c5c77277b95187b693127ec33ae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aee704b6bf5a06122960146872fdfdf19">operator&gt;</a> (const char *text) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare our object with null terminated text.  <a href="#aee704b6bf5a06122960146872fdfdf19"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#afc5c6fa0af5a48ff30d774457ecf78b9">operator&gt;=</a> (const char *text) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare our object with null terminated text.  <a href="#afc5c6fa0af5a48ff30d774457ecf78b9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a5345c861dff19ab98d28a8f4a1d6b74c">operator[]</a> (int offset) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reference a single character in string object by array offset.  <a href="#a5345c861dff19ab98d28a8f4a1d6b74c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#af964da1fe6756892a7a8b32b95dda93f">operator^=</a> (const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create new cow instance and assign value from null terminated text.  <a href="#af964da1fe6756892a7a8b32b95dda93f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aab3da38909513706bbd8902c10b1f756">operator^=</a> (const <a class="el" href="a00148.html">string</a> &amp;object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create new cow instance and assign value from another string object.  <a href="#aab3da38909513706bbd8902c10b1f756"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ada2f1cc07bb19caba9ba6723d26f04ed">printf</a> (const char *format,...)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print items into a string object.  <a href="#ada2f1cc07bb19caba9ba6723d26f04ed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ac9d88557fba522b535020c7851661684">rchr</a> (char character) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find pointer in string where specified character last appears.  <a href="#ac9d88557fba522b535020c7851661684"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a8063294a549936d4420e519cb1d80d59">resize</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resize and re-allocate string memory.  <a href="#a8063294a549936d4420e519cb1d80d59"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a8f9e25ef7349850629ec848aa255cf9e">rfind</a> (const char *list, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> offset=<a class="el" href="a00148.html#a9bd0be57a8419e9634004f92678f240b">npos</a>) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find last occurrence of character in the string.  <a href="#a8f9e25ef7349850629ec848aa255cf9e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a020efb1f7464529e84b11208172faf96">rset</a> (const char *text, char overflow, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> offset, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a text field within our string object offset from the end of buffer.  <a href="#a020efb1f7464529e84b11208172faf96"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a268ef5d39e089cf3613ec247db12cf59">rskip</a> (const char *list, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> offset=<a class="el" href="a00148.html#a9bd0be57a8419e9634004f92678f240b">npos</a>) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Skip trailing characters in the string.  <a href="#a268ef5d39e089cf3613ec247db12cf59"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ac60bbc104fdf1e14a47708fdf86b7422">rsplit</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> offset)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split the string at a specific offset.  <a href="#ac60bbc104fdf1e14a47708fdf86b7422"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a769acd6fbf5786bcb098bd7c10620759">rsplit</a> (const char *<a class="el" href="a00110.html">pointer</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split the string by a pointer position.  <a href="#a769acd6fbf5786bcb098bd7c10620759"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#abeeacce8847519b448e052598ce3e59f">scanf</a> (const char *format,...)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scan input items from a string object.  <a href="#abeeacce8847519b448e052598ce3e59f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a861a9762166338efa9c7295bdf7efaad">set</a> (const char *text, char overflow, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> offset, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a text field within our string object.  <a href="#a861a9762166338efa9c7295bdf7efaad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a2948131726d5322450e9007968b84a5b">set</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> offset, const char *text, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a portion of the string object at a specified offset to a text string.  <a href="#a2948131726d5322450e9007968b84a5b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ae2bcac2d63a813efbb5bfa22ac1a3d40">set</a> (const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set string object to text of a null terminated string.  <a href="#ae2bcac2d63a813efbb5bfa22ac1a3d40"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a03d4795ec7f45ad6146994f7b49c732c">size</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the size of currently allocated space for string.  <a href="#a03d4795ec7f45ad6146994f7b49c732c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ad0835d1c1c0fccff4e6103dac6797b6b">skip</a> (const char *list, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> offset=0) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Skip lead characters in the string.  <a href="#ad0835d1c1c0fccff4e6103dac6797b6b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a3b06750a2b500dbdaf4efe6842bb6f78">split</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> offset)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split the string at a specific offset.  <a href="#a3b06750a2b500dbdaf4efe6842bb6f78"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ad5a44ba08c6210387dcdbbde66e34d07">split</a> (const char *<a class="el" href="a00110.html">pointer</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split the string by a pointer position.  <a href="#ad5a44ba08c6210387dcdbbde66e34d07"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a489e5aba659c424e1539c1b4437db664">string</a> (const <a class="el" href="a00148.html">string</a> &amp;existing)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Construct a copy of a string object.  <a href="#a489e5aba659c424e1539c1b4437db664"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a09c3708529454259699681a0caa29b5f">string</a> (const char *text, const char *end)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a string for a substring.  <a href="#a09c3708529454259699681a0caa29b5f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aa0b2e6978c53d3d14affd72739a0a0e1">string</a> (const char *text, <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a string from null terminated text up to a maximum specified size.  <a href="#aa0b2e6978c53d3d14affd72739a0a0e1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a5b3c63388217f089ac5a38049cd81e92">string</a> (const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a string from null terminated text.  <a href="#a5b3c63388217f089ac5a38049cd81e92"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a18fb9716a3398d933bc72b1d52b63094">string</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size, const char *format,...)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a string by printf-like formating into a pre-allocated space of a specified size.  <a href="#a18fb9716a3398d933bc72b1d52b63094"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a0a02eb74403b78ee23427e904b13e596">string</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size, char fill)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a filled string with a buffer pre-allocated to a specified size.  <a href="#a0a02eb74403b78ee23427e904b13e596"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a68612d4d7f5a521a5e3f3cdb1d945d7c">string</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an empty string with a buffer pre-allocated to a specified size.  <a href="#a68612d4d7f5a521a5e3f3cdb1d945d7c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ab61887de583824ad095ac01c18f25596">string</a> (double value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a string from a floating point.  <a href="#ab61887de583824ad095ac01c18f25596"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a59cd97a30916361f645176c235a711d1">string</a> (long value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a string from a long integer.  <a href="#a59cd97a30916361f645176c235a711d1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acde156f01799c2e3a8507f5a5e33ee5f"></a><!-- doxytag: member="ucommon::string::string" ref="acde156f01799c2e3a8507f5a5e33ee5f" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#acde156f01799c2e3a8507f5a5e33ee5f">string</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a new empty string object. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ab286757b42bfb30eee3c4f539ddabf4c">strip</a> (const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Strip lead and trailing characters from the string.  <a href="#ab286757b42bfb30eee3c4f539ddabf4c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a15de49c9d3227280b64c7971b5bca039">trim</a> (const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Trim lead characters from the string.  <a href="#a15de49c9d3227280b64c7971b5bca039"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a4ccbfe036dd20efcde306a7b77cc9dca">unquote</a> (const char *quote)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unquote a quoted string.  <a href="#a4ccbfe036dd20efcde306a7b77cc9dca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ad82cb4852217299c22783a3beeae8a"></a><!-- doxytag: member="ucommon::string::upper" ref="a1ad82cb4852217299c22783a3beeae8a" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a1ad82cb4852217299c22783a3beeae8a">upper</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert string to upper case. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aad6f7939f3c3b7f23e6ba8202253f40c">vprintf</a> (const char *format, va_list args)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print items into a string object.  <a href="#aad6f7939f3c3b7f23e6ba8202253f40c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ad128d8881bdff781df19f356741807b7">vscanf</a> (const char *format, va_list args)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scan input items from a string object.  <a href="#ad128d8881bdff781df19f356741807b7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#accf357923e592c47b6f0737b97f5c473">~string</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy string.  <a href="#accf357923e592c47b6f0737b97f5c473"></a><br/></td></tr>
<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a1df621488bb6ddd515d74e2dffb514fe">add</a> (char *buffer, size_t size, const char *text, size_t max)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Safely append a null terminated string into an existing string in memory.  <a href="#a1df621488bb6ddd515d74e2dffb514fe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ad2f70f7dde3003e839fb79638526af0d">add</a> (char *buffer, size_t size, const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Safely append a null terminated string into an existing string in memory.  <a href="#ad2f70f7dde3003e839fb79638526af0d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a8e21db129ccd6d7728ae0ea0f8d86a74">b64decode</a> (uint8_t *binary, const char *<a class="el" href="a00148.html">string</a>, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Standard radix 64 decoding.  <a href="#a8e21db129ccd6d7728ae0ea0f8d86a74"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#af1445863f490fcdcda3e5cb766ddbaad">b64encode</a> (char *<a class="el" href="a00148.html">string</a>, const uint8_t *binary, size_t size, size_t width=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Standard radix 64 encoding.  <a href="#af1445863f490fcdcda3e5cb766ddbaad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a658a8794cb8d4fb58575c51d988af775">case_compare</a> (const char *text1, const char *text2, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Safe case insensitive string comparison function.  <a href="#a658a8794cb8d4fb58575c51d988af775"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aae26915b94d279f2b42a855e3a30fff2">case_compare</a> (const char *text1, const char *text2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Safe case insensitive string comparison function.  <a href="#aae26915b94d279f2b42a855e3a30fff2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a92a911304805c00a213c3dc8a0e2b17a">case_equal</a> (const char *text1, const char *text2, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Simple case insensitive equal test for strings.  <a href="#a92a911304805c00a213c3dc8a0e2b17a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a9477171257af42ddca57e5e40a9096f5">case_equal</a> (const char *text1, const char *text2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Simple case insensitive equal test for strings.  <a href="#a9477171257af42ddca57e5e40a9096f5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#af6d4126d13e2936d8cc8a52d8f6f747b">ccount</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count number of occurrences of characters in string object.  <a href="#af6d4126d13e2936d8cc8a52d8f6f747b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a2f26821539566ec14469be4944341715">ccount</a> (const char *text, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count instances of characters in a list in a text buffer.  <a href="#a2f26821539566ec14469be4944341715"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a1b0f67b7f2ea597230f5354f105eb8de">chop</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Chop trailing characters from the string.  <a href="#a1b0f67b7f2ea597230f5354f105eb8de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#adc3f2fab9fda943304cee24043136418">chop</a> (char *text, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Strip trailing characters from the text string.  <a href="#adc3f2fab9fda943304cee24043136418"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a01b03d0c480910f7899f8c9b7c9c8ea6">clear</a> (<a class="el" href="a00148.html">string</a> &amp;object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clear a string object.  <a href="#a01b03d0c480910f7899f8c9b7c9c8ea6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a03054b558194136e36a6aa60e8d8d3dc">compare</a> (const char *text1, const char *text2, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Safe string comparison function.  <a href="#a03054b558194136e36a6aa60e8d8d3dc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a158b9c4fd60a59acbe9f308ea8c4a7ce">compare</a> (const char *text1, const char *text2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Safe string comparison function.  <a href="#a158b9c4fd60a59acbe9f308ea8c4a7ce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ae9e236a69073f3b701ccf939bc2634a0">count</a> (<a class="el" href="a00148.html">string</a> &amp;object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count all characters in the string object (strlen).  <a href="#ae9e236a69073f3b701ccf939bc2634a0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a698c9b937200f2eb7955e0af4183e1ad">count</a> (const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Safe version of strlen function.  <a href="#a698c9b937200f2eb7955e0af4183e1ad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#af8fd3252a44dd7e37cd100111e692fd3">crc16</a> (uint8_t *binary, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ccitt 16 bit crc for binary data.  <a href="#af8fd3252a44dd7e37cd100111e692fd3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a481c4b3c19b1f1efaa21547093584754">crc24</a> (uint8_t *binary, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">24 bit crc as used in openpgp.  <a href="#a481c4b3c19b1f1efaa21547093584754"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a76361e914980159d9ab69228a6c0db67">dup</a> (const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Duplicate null terminated text into the heap.  <a href="#a76361e914980159d9ab69228a6c0db67"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a0fffb0439a8e8aa3b1c91de050951510">equal</a> (const char *text1, const char *text2, size_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Simple equal test for strings.  <a href="#a0fffb0439a8e8aa3b1c91de050951510"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ac6b6398c061b9e7f47a08c7bca42310a">equal</a> (const char *text1, const char *text2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Simple equal test for strings.  <a href="#ac6b6398c061b9e7f47a08c7bca42310a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a36561b979596075bb93f4c3a74af5f4a">fill</a> (char *text, size_t size, char character)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fill a section of memory with a fixed text character.  <a href="#a36561b979596075bb93f4c3a74af5f4a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a02383e3e48809364662695a8804c02f4">find</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a character in the string.  <a href="#a02383e3e48809364662695a8804c02f4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a20418e4923f34dd809c4f1ed58ef6cfd">find</a> (char *text, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the first occurrence of a character in a text buffer.  <a href="#a20418e4923f34dd809c4f1ed58ef6cfd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ae84cdb8b6137d02bf82ec4bef413a705">find</a> (const char *text, const char *key, const char *optional)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find position of substring within a string.  <a href="#ae84cdb8b6137d02bf82ec4bef413a705"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a42530abdc7a72e206d5570c853885783">first</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get pointer to first character past character requested.  <a href="#a42530abdc7a72e206d5570c853885783"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#abfd9543c51953db5b073405ba34af67c">first</a> (char *text, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get pointer to first character past character requested.  <a href="#abfd9543c51953db5b073405ba34af67c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a0b8af339eef78693f4a71f24f4b6d079">fix</a> (<a class="el" href="a00148.html">string</a> &amp;object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fix and reset string object filler.  <a href="#a0b8af339eef78693f4a71f24f4b6d079"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#adc2d249ae95e811f029f113d36ede685">hexdump</a> (const unsigned char *binary, char *<a class="el" href="a00148.html">string</a>, const char *format)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dump hex data to a string buffer.  <a href="#adc2d249ae95e811f029f113d36ede685"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ad551f6f33b9768e73c2c321d210146dc">hexpack</a> (unsigned char *binary, const char *<a class="el" href="a00148.html">string</a>, const char *format)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pack hex data from a string buffer.  <a href="#ad551f6f33b9768e73c2c321d210146dc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3d871a7729c53c38a348975ad1d9d432"></a><!-- doxytag: member="ucommon::string::hexsize" ref="a3d871a7729c53c38a348975ad1d9d432" args="(const char *format)" -->
static unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><b>hexsize</b> (const char *format)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a574f2a092fd19f8bded0d2f68107eb46">ifind</a> (const char *text, const char *key, const char *optional)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find position of case insensitive substring within a string.  <a href="#a574f2a092fd19f8bded0d2f68107eb46"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ac082850e7778748482ad4844cf47847b">last</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get pointer to last character past character requested.  <a href="#ac082850e7778748482ad4844cf47847b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a709aeecbcd1eb7da9f921697a4b07a94">last</a> (char *text, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get pointer to last character before character requested.  <a href="#a709aeecbcd1eb7da9f921697a4b07a94"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a2cd2bd2c55a1de0117bebb579f2b1579">len</a> (<a class="el" href="a00148.html">string</a> &amp;object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count all characters in the string object (strlen).  <a href="#a2cd2bd2c55a1de0117bebb579f2b1579"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ab4a358dcea0459171541defd177a2203">lower</a> (<a class="el" href="a00148.html">string</a> &amp;object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert string object to lower case.  <a href="#ab4a358dcea0459171541defd177a2203"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a0ff44ccd414472bf483b69d23449623d">lower</a> (char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert null terminated text to lower case.  <a href="#a0ff44ccd414472bf483b69d23449623d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#af7f74d909e97d89ab9381a91d0f9cf19">mem</a> (<a class="el" href="a00148.html">string</a> &amp;object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get memory text buffer of string object.  <a href="#af7f74d909e97d89ab9381a91d0f9cf19"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a0c933f3e2b8184e6f10145eeb735e9e5">printf</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *format,...)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print formatted items into a string object.  <a href="#a0c933f3e2b8184e6f10145eeb735e9e5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ad71dee8ed7b5e9c13e502cafe025c41a">rfind</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find last character in the string.  <a href="#ad71dee8ed7b5e9c13e502cafe025c41a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a3aaf0a4ec501844b1e5b6de413fe2514">rfind</a> (char *text, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the last occurrence of a character in a text buffer.  <a href="#a3aaf0a4ec501844b1e5b6de413fe2514"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#acd38681d0c7bfa9765b08774e0b5c4b9">rset</a> (char *buffer, size_t size, const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a field in a null terminated string relative to the end of text.  <a href="#acd38681d0c7bfa9765b08774e0b5c4b9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a8be8bbfa4953b272dbc1246964695b54">rskip</a> (char *text, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Skip before trailing characters in a null terminated string.  <a href="#a8be8bbfa4953b272dbc1246964695b54"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a042771a0912a3ca1eeddabfa4b52d646">scanf</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *format,...)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scan input items from a string object.  <a href="#a042771a0912a3ca1eeddabfa4b52d646"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#acef94afa0a66eb1c3a438044a597becd">set</a> (char *buffer, size_t size, const char *text, size_t max)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Safely set a null terminated string buffer in memory.  <a href="#acef94afa0a66eb1c3a438044a597becd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a63c2dc8d9883237ff34d034b869e25d9">set</a> (char *buffer, size_t size, const char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Safely set a null terminated string buffer in memory.  <a href="#a63c2dc8d9883237ff34d034b869e25d9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a2330a1b30c5fa95184c9e806fc0a79a2">size</a> (<a class="el" href="a00148.html">string</a> &amp;object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the size of currently allocated space for string.  <a href="#a2330a1b30c5fa95184c9e806fc0a79a2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ad001cf6dc52f1da5f5326d7df18b54e9">skip</a> (char *text, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Skip after lead characters in a null terminated string.  <a href="#ad001cf6dc52f1da5f5326d7df18b54e9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a0dcc911e410437a36cdd1698564e04ec">strip</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Strip lead and trailing characters from the string.  <a href="#a0dcc911e410437a36cdd1698564e04ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a7174ef7b5005509287ef9ef221b1671e">strip</a> (char *text, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Skip lead and remove trailing characters from a text string.  <a href="#a7174ef7b5005509287ef9ef221b1671e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a5ee785811742ce23c16cb2d514793e4f">swap</a> (<a class="el" href="a00148.html">string</a> &amp;object1, <a class="el" href="a00148.html">string</a> &amp;object2)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Swap the cstring references between two strings.  <a href="#a5ee785811742ce23c16cb2d514793e4f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aa953dceed276685fd2b6bf9c957a7579">tod</a> (const char *text, char **<a class="el" href="a00110.html">pointer</a>=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert text to a double value.  <a href="#aa953dceed276685fd2b6bf9c957a7579"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a0d64f40bb87ff8650bed965c6c4bbe41">tod</a> (<a class="el" href="a00148.html">string</a> &amp;object, char **<a class="el" href="a00110.html">pointer</a>=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert string to a double value.  <a href="#a0d64f40bb87ff8650bed965c6c4bbe41"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a4794a0c2483d143afef9e2cca07138cc">token</a> (<a class="el" href="a00148.html">string</a> &amp;object, char **last, const char *list, const char *quote=NULL, const char *end=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A thread-safe token parsing routine for strings objects.  <a href="#a4794a0c2483d143afef9e2cca07138cc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#ae9e7793b5a2046ef570115a268aa3f4d">token</a> (char *text, char **last, const char *list, const char *quote=NULL, const char *end=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A thread-safe token parsing routine for null terminated strings.  <a href="#ae9e7793b5a2046ef570115a268aa3f4d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a06ed55f7cf4fbbf946437ee75fe746cf">tol</a> (const char *text, char **<a class="el" href="a00110.html">pointer</a>=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert text to a long value.  <a href="#a06ed55f7cf4fbbf946437ee75fe746cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a34a84e34dda9f7a6c8c93792f0767c8a">tol</a> (<a class="el" href="a00148.html">string</a> &amp;object, char **<a class="el" href="a00110.html">pointer</a>=NULL)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert string to a long value.  <a href="#a34a84e34dda9f7a6c8c93792f0767c8a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aa10f5e3f00f40746c5b8951deac48b65">trim</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Trim lead characters from the string.  <a href="#aa10f5e3f00f40746c5b8951deac48b65"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a1b7a4fab8efbc255b1d83001f8cfd75a">trim</a> (char *text, const char *list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return start of string after characters to trim from beginning.  <a href="#a1b7a4fab8efbc255b1d83001f8cfd75a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a7f4a68a249b9868860b148ee7522561f">unquote</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *quote)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unquote a quoted string.  <a href="#a7f4a68a249b9868860b148ee7522561f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a49a8fa90636e68c69a46eb394662823f">unquote</a> (char *text, const char *quote)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unquote a quoted null terminated string.  <a href="#a49a8fa90636e68c69a46eb394662823f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#acaf0d96e8f4d05d3458265619b7aca00">upper</a> (<a class="el" href="a00148.html">string</a> &amp;object)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert string object to upper case.  <a href="#acaf0d96e8f4d05d3458265619b7aca00"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#aa4d43ec164f35765987f71b438767b73">upper</a> (char *text)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert null terminated text to upper case.  <a href="#aa4d43ec164f35765987f71b438767b73"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a1e14956578d1d5fc78b9a161ede7d20b">vprintf</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *format, va_list args)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print items into a string object.  <a href="#a1e14956578d1d5fc78b9a161ede7d20b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a923377babb8f283008a4bea7b448ac15">vscanf</a> (<a class="el" href="a00148.html">string</a> &amp;object, const char *format, va_list args)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scan input items from a string object.  <a href="#a923377babb8f283008a4bea7b448ac15"></a><br/></td></tr>
<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9bd0be57a8419e9634004f92678f240b"></a><!-- doxytag: member="ucommon::string::npos" ref="a9bd0be57a8419e9634004f92678f240b" args="" -->
static const <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a9bd0be57a8419e9634004f92678f240b">npos</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A constant for an invalid position value. <br/></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a00149.html">cstring</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a20c58f46753026bf166ea90dc9b6d6ea">c_copy</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return cstring to use in copy constructors.  <a href="#a20c58f46753026bf166ea90dc9b6d6ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a317c46a81426f4512667f2b4e20f50fd">compare</a> (const char *<a class="el" href="a00148.html">string</a>) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compare the values of two string.  <a href="#a317c46a81426f4512667f2b4e20f50fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a78b80e2da0cfab5f58e4fe7905414502">cow</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy on write operation for cstring.  <a href="#a78b80e2da0cfab5f58e4fe7905414502"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00149.html">cstring</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a483992a667d1cb4d30eebe4763a8cead">create</a> (<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> size, char fill=0) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Factory create a cstring object of specified size.  <a href="#a483992a667d1cb4d30eebe4763a8cead"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#afb48a57a997cb2bfa3c28c5e03ee30f1">equal</a> (const char *<a class="el" href="a00148.html">string</a>) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if two string values are equal.  <a href="#afb48a57a997cb2bfa3c28c5e03ee30f1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92d3313b41e0140ca067ed9facb503a5"></a><!-- doxytag: member="ucommon::string::getStringSize" ref="a92d3313b41e0140ca067ed9facb503a5" args="(void)" -->
<a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>getStringSize</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a77ff3e9e6b02ff871522c19dc99f0a17">release</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decrease retention of our reference counted cstring.  <a href="#a77ff3e9e6b02ff871522c19dc99f0a17"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a374d4c4108f576b1422971e168ffd79a">retain</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Increase retention of our reference counted cstring.  <a href="#a374d4c4108f576b1422971e168ffd79a"></a><br/></td></tr>
<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00149.html">cstring</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00148.html#a76b6b3d50901489824b3dfeba5fed794">str</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">cstring instance our object references.  <a href="#a76b6b3d50901489824b3dfeba5fed794"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A copy-on-write string class that operates by reference count. </p>
<p>This string class anchors a counted object that is managed as a copy-on-write instance of the string data. This means that multiple instances of the string class can refer to the same string in memory if it has not been modifed, which reduces heap allocation. The string class offers functions to manipulate both the string object, and generic safe string functions to manipulate ordinary null terminated character arrays directly in memory. </p>
<dl class="author"><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@gnutelephony.org">dyfet@gnutelephony.org</a>&gt; </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l00082">82</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a59cd97a30916361f645176c235a711d1"></a><!-- doxytag: member="ucommon::string::string" ref="a59cd97a30916361f645176c235a711d1" args="(long value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::string::string </td>
          <td>(</td>
          <td class="paramtype">long&nbsp;</td>
          <td class="paramname"> <em>value</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a string from a long integer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>to convert to string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab61887de583824ad095ac01c18f25596"></a><!-- doxytag: member="ucommon::string::string" ref="ab61887de583824ad095ac01c18f25596" args="(double value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::string::string </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>value</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a string from a floating point. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>to convert to string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a68612d4d7f5a521a5e3f3cdb1d945d7c"></a><!-- doxytag: member="ucommon::string::string" ref="a68612d4d7f5a521a5e3f3cdb1d945d7c" args="(strsize_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::string::string </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create an empty string with a buffer pre-allocated to a specified size. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of buffer to allocate. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0a02eb74403b78ee23427e904b13e596"></a><!-- doxytag: member="ucommon::string::string" ref="a0a02eb74403b78ee23427e904b13e596" args="(strsize_t size, char fill)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::string::string </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>fill</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a filled string with a buffer pre-allocated to a specified size. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of buffer to allocate. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fill</em>&nbsp;</td><td>character to use. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a18fb9716a3398d933bc72b1d52b63094"></a><!-- doxytag: member="ucommon::string::string" ref="a18fb9716a3398d933bc72b1d52b63094" args="(strsize_t size, const char *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::string::string </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a string by printf-like formating into a pre-allocated space of a specified size. </p>
<p>A typical use might be in a concat function like String x = (String)something + (String){10, "%ud", var}. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of buffer to allocate. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>control for string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5b3c63388217f089ac5a38049cd81e92"></a><!-- doxytag: member="ucommon::string::string" ref="a5b3c63388217f089ac5a38049cd81e92" args="(const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::string::string </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a string from null terminated text. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to use for string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa0b2e6978c53d3d14affd72739a0a0e1"></a><!-- doxytag: member="ucommon::string::string" ref="aa0b2e6978c53d3d14affd72739a0a0e1" args="(const char *text, strsize_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::string::string </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a string from null terminated text up to a maximum specified size. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to use for string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>limit of new string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a09c3708529454259699681a0caa29b5f"></a><!-- doxytag: member="ucommon::string::string" ref="a09c3708529454259699681a0caa29b5f" args="(const char *text, const char *end)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::string::string </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>end</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a string for a substring. </p>
<p>The end of the substring is a pointer within the substring itself. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to use for string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>end</em>&nbsp;</td><td>of text in substring. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a489e5aba659c424e1539c1b4437db664"></a><!-- doxytag: member="ucommon::string::string" ref="a489e5aba659c424e1539c1b4437db664" args="(const string &amp;existing)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::string::string </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>existing</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Construct a copy of a string object. </p>
<p>Our copy inherets the same reference counted instance of cstring as in the original. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>existing</em>&nbsp;</td><td>string to copy from. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="accf357923e592c47b6f0737b97f5c473"></a><!-- doxytag: member="ucommon::string::~string" ref="accf357923e592c47b6f0737b97f5c473" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual ucommon::string::~string </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroy string. </p>
<p>De-reference cstring. If last reference to cstring, then also remove cstring from heap. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a1df621488bb6ddd515d74e2dffb514fe"></a><!-- doxytag: member="ucommon::string::add" ref="a1df621488bb6ddd515d74e2dffb514fe" args="(char *buffer, size_t size, const char *text, size_t max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::add </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>max</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Safely append a null terminated string into an existing string in memory. </p>
<p>If the resulting string is too large to fit into the buffer, it is truncated to the size. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of buffer. Includes null byte at end of string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to set in buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>max</em>&nbsp;</td><td>size of text to append. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to text buffer. </dd></dl>

</div>
</div>
<a class="anchor" id="ad2f70f7dde3003e839fb79638526af0d"></a><!-- doxytag: member="ucommon::string::add" ref="ad2f70f7dde3003e839fb79638526af0d" args="(char *buffer, size_t size, const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::add </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Safely append a null terminated string into an existing string in memory. </p>
<p>If the resulting string is too large to fit into the buffer, it is truncated to the size. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of buffer. Includes null byte at end of string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to set in buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to text buffer. </dd></dl>

</div>
</div>
<a class="anchor" id="a5e893fe6930a00253a8c73ab860a5f5d"></a><!-- doxytag: member="ucommon::string::add" ref="a5e893fe6930a00253a8c73ab860a5f5d" args="(char character)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::add </td>
          <td>(</td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>character</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a single character to our string buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>character</em>&nbsp;</td><td>to append. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4cba3bb894982985844e05b62f1d0253"></a><!-- doxytag: member="ucommon::string::add" ref="a4cba3bb894982985844e05b62f1d0253" args="(const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::add </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append null terminated text to our string buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to append. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa9dcf23de080193f9d5f4089a9d3236b"></a><!-- doxytag: member="ucommon::string::at" ref="aa9dcf23de080193f9d5f4089a9d3236b" args="(int position) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char ucommon::string::at </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>position</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return character found at a specific position in the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>position</em>&nbsp;</td><td>in string, negative values computed from end. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>character code at specified position in string. </dd></dl>

<p>Reimplemented in <a class="el" href="a00169.html#ae1d667c9af8d18939b7a31b6c6adafe5">ucommon::UString</a>.</p>

</div>
</div>
<a class="anchor" id="a8e21db129ccd6d7728ae0ea0f8d86a74"></a><!-- doxytag: member="ucommon::string::b64decode" ref="a8e21db129ccd6d7728ae0ea0f8d86a74" args="(uint8_t *binary, const char *string, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t ucommon::string::b64decode </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Standard radix 64 decoding. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>binary</em>&nbsp;</td><td>data to save. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>of encoded text. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of destination buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes actually decoded. </dd></dl>

</div>
</div>
<a class="anchor" id="af1445863f490fcdcda3e5cb766ddbaad"></a><!-- doxytag: member="ucommon::string::b64encode" ref="af1445863f490fcdcda3e5cb766ddbaad" args="(char *string, const uint8_t *binary, size_t size, size_t width=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t ucommon::string::b64encode </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&nbsp;</td>
          <td class="paramname"> <em>binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>width</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Standard radix 64 encoding. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>of encoded text save into. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>binary</em>&nbsp;</td><td>data to encode. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of binary data to encode. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>width</em>&nbsp;</td><td>of string buffer for data if partial supported. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes encoded. </dd></dl>

</div>
</div>
<a class="anchor" id="a4b9249dc7905d80ad6b261cf4612558e"></a><!-- doxytag: member="ucommon::string::begin" ref="a4b9249dc7905d80ad6b261cf4612558e" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::begin </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get pointer to first character in string for iteration. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>first character pointer or NULL if empty. </dd></dl>

</div>
</div>
<a class="anchor" id="a20c58f46753026bf166ea90dc9b6d6ea"></a><!-- doxytag: member="ucommon::string::c_copy" ref="a20c58f46753026bf166ea90dc9b6d6ea" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="a00149.html">cstring</a>* ucommon::string::c_copy </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return cstring to use in copy constructors. </p>
<p>Is virtual for memstring. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>cstring for copy constructor. </dd></dl>

<p>Reimplemented in <a class="el" href="a00082.html#aff8e0ad641d004575128aa2a3b0665ea">ucommon::memstring</a>.</p>

</div>
</div>
<a class="anchor" id="abf30ccd6cf0c3a7b36943c712e8f8181"></a><!-- doxytag: member="ucommon::string::c_mem" ref="abf30ccd6cf0c3a7b36943c712e8f8181" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* ucommon::string::c_mem </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get memory text buffer of string object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>writable string buffer. </dd></dl>

</div>
</div>
<a class="anchor" id="a56c42ee4aba4a888818c3877c56a9e89"></a><!-- doxytag: member="ucommon::string::c_str" ref="a56c42ee4aba4a888818c3877c56a9e89" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::c_str </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get character text buffer of string object. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>character text buffer. </dd></dl>

</div>
</div>
<a class="anchor" id="a658a8794cb8d4fb58575c51d988af775"></a><!-- doxytag: member="ucommon::string::case_compare" ref="a658a8794cb8d4fb58575c51d988af775" args="(const char *text1, const char *text2, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int ucommon::string::case_compare </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Safe case insensitive string comparison function. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text1</em>&nbsp;</td><td>to compare. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text2</em>&nbsp;</td><td>to compare. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>limit of strings to compare. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if equal, &gt;0 if text1 &gt; text2, &lt;0 if text1 &lt; text2. </dd></dl>

</div>
</div>
<a class="anchor" id="aae26915b94d279f2b42a855e3a30fff2"></a><!-- doxytag: member="ucommon::string::case_compare" ref="aae26915b94d279f2b42a855e3a30fff2" args="(const char *text1, const char *text2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int ucommon::string::case_compare </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Safe case insensitive string comparison function. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text1</em>&nbsp;</td><td>to compare. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text2</em>&nbsp;</td><td>to compare. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if equal, &gt;0 if text1 &gt; text2, &lt;0 if text1 &lt; text2. </dd></dl>

</div>
</div>
<a class="anchor" id="a92a911304805c00a213c3dc8a0e2b17a"></a><!-- doxytag: member="ucommon::string::case_equal" ref="a92a911304805c00a213c3dc8a0e2b17a" args="(const char *text1, const char *text2, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool ucommon::string::case_equal </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Simple case insensitive equal test for strings. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text1</em>&nbsp;</td><td>to test. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text2</em>&nbsp;</td><td>to test. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>limit of strings to compare. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if equal. </dd></dl>

</div>
</div>
<a class="anchor" id="a9477171257af42ddca57e5e40a9096f5"></a><!-- doxytag: member="ucommon::string::case_equal" ref="a9477171257af42ddca57e5e40a9096f5" args="(const char *text1, const char *text2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool ucommon::string::case_equal </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Simple case insensitive equal test for strings. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text1</em>&nbsp;</td><td>to test. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text2</em>&nbsp;</td><td>to test. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if equal. </dd></dl>

</div>
</div>
<a class="anchor" id="af6d4126d13e2936d8cc8a52d8f6f747b"></a><!-- doxytag: member="ucommon::string::ccount" ref="af6d4126d13e2936d8cc8a52d8f6f747b" args="(string &amp;object, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned ucommon::string::ccount </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Count number of occurrences of characters in string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to examine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to find. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>count of instances of characters. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01228">1228</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2f26821539566ec14469be4944341715"></a><!-- doxytag: member="ucommon::string::ccount" ref="a2f26821539566ec14469be4944341715" args="(const char *text, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned ucommon::string::ccount </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Count instances of characters in a list in a text buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>buffer to examine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to count in buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of instances of the characters in buffer. </dd></dl>

</div>
</div>
<a class="anchor" id="aba570af28140a5fb90e7751bdb71a985"></a><!-- doxytag: member="ucommon::string::ccount" ref="aba570af28140a5fb90e7751bdb71a985" args="(const char *list) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> ucommon::string::ccount </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Count number of occurrences of characters in string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to find. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>count of instances of characters in string. </dd></dl>

</div>
</div>
<a class="anchor" id="a1b0f67b7f2ea597230f5354f105eb8de"></a><!-- doxytag: member="ucommon::string::chop" ref="a1b0f67b7f2ea597230f5354f105eb8de" args="(string &amp;object, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::string::chop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Chop trailing characters from the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to chop. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to remove. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01275">1275</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="adc3f2fab9fda943304cee24043136418"></a><!-- doxytag: member="ucommon::string::chop" ref="adc3f2fab9fda943304cee24043136418" args="(char *text, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::chop </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Strip trailing characters from the text string. </p>
<p>This function will modify memory. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>buffer to examine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to chop from trailing end of string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to text buffer. </dd></dl>

</div>
</div>
<a class="anchor" id="a68ff1b3ab49dce4fffdc6fb61b2fde65"></a><!-- doxytag: member="ucommon::string::chop" ref="a68ff1b3ab49dce4fffdc6fb61b2fde65" args="(const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::chop </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Chop trailing characters from the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to remove. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac0e7f7a870283c8f1db8cdc420bb0f93"></a><!-- doxytag: member="ucommon::string::chr" ref="ac0e7f7a870283c8f1db8cdc420bb0f93" args="(char character) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::chr </td>
          <td>(</td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>character</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find pointer in string where specified character appears. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>character</em>&nbsp;</td><td>to find. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>string pointer for character if found, NULL if not. </dd></dl>

</div>
</div>
<a class="anchor" id="a01b03d0c480910f7899f8c9b7c9c8ea6"></a><!-- doxytag: member="ucommon::string::clear" ref="a01b03d0c480910f7899f8c9b7c9c8ea6" args="(string &amp;object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::string::clear </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clear a string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to clear. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01219">1219</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="abce9a220c1a74476d7164d1617a88f7d"></a><!-- doxytag: member="ucommon::string::clear" ref="abce9a220c1a74476d7164d1617a88f7d" args="(strsize_t offset, strsize_t size=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::clear </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clear a field of a filled string with filler. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>to start of field to clear. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of field to fill or 0 to fill to end of string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a03054b558194136e36a6aa60e8d8d3dc"></a><!-- doxytag: member="ucommon::string::compare" ref="a03054b558194136e36a6aa60e8d8d3dc" args="(const char *text1, const char *text2, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int ucommon::string::compare </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Safe string comparison function. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text1</em>&nbsp;</td><td>to compare. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text2</em>&nbsp;</td><td>to compare. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>limit of strings to compare. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if equal, &gt;0 if text1 &gt; text2, &lt;0 if text1 &lt; text2. </dd></dl>

</div>
</div>
<a class="anchor" id="a158b9c4fd60a59acbe9f308ea8c4a7ce"></a><!-- doxytag: member="ucommon::string::compare" ref="a158b9c4fd60a59acbe9f308ea8c4a7ce" args="(const char *text1, const char *text2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int ucommon::string::compare </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Safe string comparison function. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text1</em>&nbsp;</td><td>to compare. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text2</em>&nbsp;</td><td>to compare. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if equal, &gt;0 if text1 &gt; text2, &lt;0 if text1 &lt; text2. </dd></dl>

</div>
</div>
<a class="anchor" id="a317c46a81426f4512667f2b4e20f50fd"></a><!-- doxytag: member="ucommon::string::compare" ref="a317c46a81426f4512667f2b4e20f50fd" args="(const char *string) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int ucommon::string::compare </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>string</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compare the values of two string. </p>
<p>This is a virtual so that it can be overridden for example if we want to create strings which ignore case, or which have special ordering rules. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>to compare with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 if equal, &lt;0 if less than, 0&gt; if greater than. </dd></dl>

</div>
</div>
<a class="anchor" id="ae9e236a69073f3b701ccf939bc2634a0"></a><!-- doxytag: member="ucommon::string::count" ref="ae9e236a69073f3b701ccf939bc2634a0" args="(string &amp;object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t ucommon::string::count </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Count all characters in the string object (strlen). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to count. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>count of characters. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01236">1236</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a698c9b937200f2eb7955e0af4183e1ad"></a><!-- doxytag: member="ucommon::string::count" ref="a698c9b937200f2eb7955e0af4183e1ad" args="(const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t ucommon::string::count </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Safe version of strlen function. </p>
<p>Accepts NULL as 0 length strings. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>length of string. </dd></dl>

</div>
</div>
<a class="anchor" id="a178d708f8c2019954ea86a3688f77e3b"></a><!-- doxytag: member="ucommon::string::count" ref="a178d708f8c2019954ea86a3688f77e3b" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> ucommon::string::count </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Count all characters in the string (strlen). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>count of characters. </dd></dl>

<p>Reimplemented in <a class="el" href="a00169.html#a775a5940fcb10992645c12b786ee00c2">ucommon::UString</a>.</p>

</div>
</div>
<a class="anchor" id="a78b80e2da0cfab5f58e4fe7905414502"></a><!-- doxytag: member="ucommon::string::cow" ref="a78b80e2da0cfab5f58e4fe7905414502" args="(strsize_t size=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ucommon::string::cow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em> = <code>0</code></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy on write operation for cstring. </p>
<p>This always creates a new unique copy for write/modify operations and is a virtual for memstring to disable. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>to add to allocated space when creating new cstring. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af8fd3252a44dd7e37cd100111e692fd3"></a><!-- doxytag: member="ucommon::string::crc16" ref="af8fd3252a44dd7e37cd100111e692fd3" args="(uint8_t *binary, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static uint16_t ucommon::string::crc16 </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>ccitt 16 bit crc for binary data. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>binary</em>&nbsp;</td><td>data to sum. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of binary data to sum. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>16 bit crc. </dd></dl>

</div>
</div>
<a class="anchor" id="a481c4b3c19b1f1efaa21547093584754"></a><!-- doxytag: member="ucommon::string::crc24" ref="a481c4b3c19b1f1efaa21547093584754" args="(uint8_t *binary, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static uint32_t ucommon::string::crc24 </td>
          <td>(</td>
          <td class="paramtype">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>24 bit crc as used in openpgp. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>binary</em>&nbsp;</td><td>data to sum. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of binary data to sum. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>24 bit crc of data. </dd></dl>

</div>
</div>
<a class="anchor" id="a483992a667d1cb4d30eebe4763a8cead"></a><!-- doxytag: member="ucommon::string::create" ref="a483992a667d1cb4d30eebe4763a8cead" args="(strsize_t size, char fill=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00149.html">cstring</a>* ucommon::string::create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>fill</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Factory create a cstring object of specified size. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of allocated space for string buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fill</em>&nbsp;</td><td>character to use or 0 if null. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>new cstring object. </dd></dl>

</div>
</div>
<a class="anchor" id="a51e25b47ba92a37ae69aa4267b46f556"></a><!-- doxytag: member="ucommon::string::cut" ref="a51e25b47ba92a37ae69aa4267b46f556" args="(strsize_t offset, strsize_t size=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::cut </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cut (remove) text from string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>to start of text field to remove. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of text field to remove or 0 to remove to end of string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a76361e914980159d9ab69228a6c0db67"></a><!-- doxytag: member="ucommon::string::dup" ref="a76361e914980159d9ab69228a6c0db67" args="(const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::dup </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Duplicate null terminated text into the heap. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to duplicate. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>duplicate copy of text allocated from heap. </dd></dl>

</div>
</div>
<a class="anchor" id="a84132108ff738464103c226a0c4bb070"></a><!-- doxytag: member="ucommon::string::end" ref="a84132108ff738464103c226a0c4bb070" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::end </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get pointer to last character in string for iteration. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>last character pointer or NULL if empty. </dd></dl>

</div>
</div>
<a class="anchor" id="a0fffb0439a8e8aa3b1c91de050951510"></a><!-- doxytag: member="ucommon::string::equal" ref="a0fffb0439a8e8aa3b1c91de050951510" args="(const char *text1, const char *text2, size_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool ucommon::string::equal </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Simple equal test for strings. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text1</em>&nbsp;</td><td>to test. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text2</em>&nbsp;</td><td>to test. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>limit of strings to compare. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if equal and case is same. </dd></dl>

</div>
</div>
<a class="anchor" id="ac6b6398c061b9e7f47a08c7bca42310a"></a><!-- doxytag: member="ucommon::string::equal" ref="ac6b6398c061b9e7f47a08c7bca42310a" args="(const char *text1, const char *text2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool ucommon::string::equal </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Simple equal test for strings. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text1</em>&nbsp;</td><td>to test. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text2</em>&nbsp;</td><td>to test. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if equal and case is same. </dd></dl>

</div>
</div>
<a class="anchor" id="afb48a57a997cb2bfa3c28c5e03ee30f1"></a><!-- doxytag: member="ucommon::string::equal" ref="afb48a57a997cb2bfa3c28c5e03ee30f1" args="(const char *string) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::string::equal </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>string</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if two string values are equal. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>to compare with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if equal. </dd></dl>

</div>
</div>
<a class="anchor" id="a36561b979596075bb93f4c3a74af5f4a"></a><!-- doxytag: member="ucommon::string::fill" ref="a36561b979596075bb93f4c3a74af5f4a" args="(char *text, size_t size, char character)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::fill </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>character</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fill a section of memory with a fixed text character. </p>
<p>Adds a null byte at the end. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>buffer to fill. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of text buffer with null terminated byte. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>character</em>&nbsp;</td><td>to fill with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to text buffer. </dd></dl>

</div>
</div>
<a class="anchor" id="aa08fece36d3d6583b04672bd98f1b181"></a><!-- doxytag: member="ucommon::string::fill" ref="aa08fece36d3d6583b04672bd98f1b181" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char ucommon::string::fill </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get filler character used for field array strings. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>filler character or 0 if none. </dd></dl>

</div>
</div>
<a class="anchor" id="a02383e3e48809364662695a8804c02f4"></a><!-- doxytag: member="ucommon::string::find" ref="a02383e3e48809364662695a8804c02f4" args="(string &amp;object, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* ucommon::string::find </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find a character in the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to search. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to search for. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to first occurrence of character. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01292">1292</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a20418e4923f34dd809c4f1ed58ef6cfd"></a><!-- doxytag: member="ucommon::string::find" ref="a20418e4923f34dd809c4f1ed58ef6cfd" args="(char *text, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::find </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find the first occurrence of a character in a text buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>buffer to examine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to search for. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to first instance found or NULL. </dd></dl>

</div>
</div>
<a class="anchor" id="ae84cdb8b6137d02bf82ec4bef413a705"></a><!-- doxytag: member="ucommon::string::find" ref="ae84cdb8b6137d02bf82ec4bef413a705" args="(const char *text, const char *key, const char *optional)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* ucommon::string::find </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>optional</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find position of substring within a string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to search in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>string to locate. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>optional</em>&nbsp;</td><td>separator chars if formatted as list of keys. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>substring position if found, or NULL. </dd></dl>

</div>
</div>
<a class="anchor" id="a5b04cb01741b58bb0623573777bc1c51"></a><!-- doxytag: member="ucommon::string::find" ref="a5b04cb01741b58bb0623573777bc1c51" args="(const char *list, strsize_t offset=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::find </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>offset</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find a character in the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to search for. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>to start of search. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to first occurrence of character. </dd></dl>

</div>
</div>
<a class="anchor" id="a42530abdc7a72e206d5570c853885783"></a><!-- doxytag: member="ucommon::string::first" ref="a42530abdc7a72e206d5570c853885783" args="(string &amp;object, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* ucommon::string::first </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get pointer to first character past character requested. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to examine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>first character pointer past list. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01310">1310</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="abfd9543c51953db5b073405ba34af67c"></a><!-- doxytag: member="ucommon::string::first" ref="abfd9543c51953db5b073405ba34af67c" args="(char *text, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::first </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get pointer to first character past character requested. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>buffer to examine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>first character pointer past list. </dd></dl>

</div>
</div>
<a class="anchor" id="a15ed43df2287bf462b1ed3943dbc8960"></a><!-- doxytag: member="ucommon::string::first" ref="a15ed43df2287bf462b1ed3943dbc8960" args="(const char *list) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::first </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find first occurrence of a character in the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to search for. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to first occurrence from list or NULL. </dd></dl>

</div>
</div>
<a class="anchor" id="a0b8af339eef78693f4a71f24f4b6d079"></a><!-- doxytag: member="ucommon::string::fix" ref="a0b8af339eef78693f4a71f24f4b6d079" args="(string &amp;object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::string::fix </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fix and reset string object filler. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to fix. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a6638acfa2b89a224c222bbc17e43a5f0"></a><!-- doxytag: member="ucommon::string::full" ref="a6638acfa2b89a224c222bbc17e43a5f0" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::string::full </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if the string's allocated space is all used up. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no more room for append. </dd></dl>

</div>
</div>
<a class="anchor" id="ad2d52ee908980c305d6f9f383b940b66"></a><!-- doxytag: member="ucommon::string::get" ref="ad2d52ee908980c305d6f9f383b940b66" args="(strsize_t offset, strsize_t size=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a> ucommon::string::get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a new string object as a substring of the current object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>of substring. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of substring or 0 if to end. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>string object holding substring. </dd></dl>

<p>Reimplemented in <a class="el" href="a00169.html#a5fd8069f83deadd65525b4cdee181baf">ucommon::UString</a>.</p>

</div>
</div>
<a class="anchor" id="adc2d249ae95e811f029f113d36ede685"></a><!-- doxytag: member="ucommon::string::hexdump" ref="adc2d249ae95e811f029f113d36ede685" args="(const unsigned char *binary, char *string, const char *format)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned ucommon::string::hexdump </td>
          <td>(</td>
          <td class="paramtype">const unsigned char *&nbsp;</td>
          <td class="paramname"> <em>binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Dump hex data to a string buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>binary</em>&nbsp;</td><td>memory to dump. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>to save into. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>string to convert with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes processed. </dd></dl>

</div>
</div>
<a class="anchor" id="ad551f6f33b9768e73c2c321d210146dc"></a><!-- doxytag: member="ucommon::string::hexpack" ref="ad551f6f33b9768e73c2c321d210146dc" args="(unsigned char *binary, const char *string, const char *format)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned ucommon::string::hexpack </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&nbsp;</td>
          <td class="paramname"> <em>binary</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Pack hex data from a string buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>binary</em>&nbsp;</td><td>memory to pack. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>to save into. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>string to convert with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes processed. </dd></dl>

</div>
</div>
<a class="anchor" id="a574f2a092fd19f8bded0d2f68107eb46"></a><!-- doxytag: member="ucommon::string::ifind" ref="a574f2a092fd19f8bded0d2f68107eb46" args="(const char *text, const char *key, const char *optional)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* ucommon::string::ifind </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>optional</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find position of case insensitive substring within a string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to search in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>string to locate. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>optional</em>&nbsp;</td><td>separator chars if formatted as list of keys. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>substring position if found, or NULL. </dd></dl>

</div>
</div>
<a class="anchor" id="ac082850e7778748482ad4844cf47847b"></a><!-- doxytag: member="ucommon::string::last" ref="ac082850e7778748482ad4844cf47847b" args="(string &amp;object, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* ucommon::string::last </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get pointer to last character past character requested. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to examine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>last character pointer before list. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01319">1319</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a709aeecbcd1eb7da9f921697a4b07a94"></a><!-- doxytag: member="ucommon::string::last" ref="a709aeecbcd1eb7da9f921697a4b07a94" args="(char *text, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::last </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get pointer to last character before character requested. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>buffer to examine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>last character pointer past list. </dd></dl>

</div>
</div>
<a class="anchor" id="aac2d0db81ca3b197d140088d4b982642"></a><!-- doxytag: member="ucommon::string::last" ref="aac2d0db81ca3b197d140088d4b982642" args="(const char *list) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::last </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find last occurrence of a character in the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to search for. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to last occurrence from list or NULL. </dd></dl>

</div>
</div>
<a class="anchor" id="a2cd2bd2c55a1de0117bebb579f2b1579"></a><!-- doxytag: member="ucommon::string::len" ref="a2cd2bd2c55a1de0117bebb579f2b1579" args="(string &amp;object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> ucommon::string::len </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Count all characters in the string object (strlen). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to count. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>count of characters. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01196">1196</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4edc4d417c7b09aa2bd1bc2dd9341b39"></a><!-- doxytag: member="ucommon::string::len" ref="a4edc4d417c7b09aa2bd1bc2dd9341b39" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> ucommon::string::len </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get length of string. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>length of string. </dd></dl>

</div>
</div>
<a class="anchor" id="ab4a358dcea0459171541defd177a2203"></a><!-- doxytag: member="ucommon::string::lower" ref="ab4a358dcea0459171541defd177a2203" args="(string &amp;object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::string::lower </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert string object to lower case. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to modify. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01250">1250</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0ff44ccd414472bf483b69d23449623d"></a><!-- doxytag: member="ucommon::string::lower" ref="a0ff44ccd414472bf483b69d23449623d" args="(char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::string::lower </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert null terminated text to lower case. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to convert. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af7f74d909e97d89ab9381a91d0f9cf19"></a><!-- doxytag: member="ucommon::string::mem" ref="af7f74d909e97d89ab9381a91d0f9cf19" args="(string &amp;object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::mem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get memory text buffer of string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to get string buffer from. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>writable string buffer. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01204">1204</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac41e7c98e016b50832c6ffd60d4ac8cb"></a><!-- doxytag: member="ucommon::string::offset" ref="ac41e7c98e016b50832c6ffd60d4ac8cb" args="(const char *pointer) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> ucommon::string::offset </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>pointer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find offset of a pointer into our string buffer. </p>
<p>This can be used to find the offset position of a pointer returned by find, for example. This is used when one needs to convert a member function that returns a pointer to call a member function that operates by a offset value. If the pointer is outside the range of the string then npos is returned. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>into our object's string buffer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae8597b326d6bc4ee3066e275dee8b78f"></a><!-- doxytag: member="ucommon::string::operator bool" ref="ae8597b326d6bc4ee3066e275dee8b78f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::string::operator bool </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if string has data. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if string has data. </dd></dl>

</div>
</div>
<a class="anchor" id="a160f3c7225d070fcd8a30ddcaeac32c4"></a><!-- doxytag: member="ucommon::string::operator const char *" ref="a160f3c7225d070fcd8a30ddcaeac32c4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::string::operator const char * </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Casting reference to raw text string. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>null terminated text of string. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l00636">636</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a16d8eb6eb71de29dd2036d05a871f471"></a><!-- doxytag: member="ucommon::string::operator!" ref="a16d8eb6eb71de29dd2036d05a871f471" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::string::operator! </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Test if string is empty. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if string is empty. </dd></dl>

</div>
</div>
<a class="anchor" id="a923fe9ce098dbc95a5f05270c7b0ec62"></a><!-- doxytag: member="ucommon::string::operator!=" ref="a923fe9ce098dbc95a5f05270c7b0ec62" args="(const char *text) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::string::operator!= </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compare our object with null terminated text. </p>
<p>Compare method is used. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to compare with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if we are not equal. </dd></dl>

</div>
</div>
<a class="anchor" id="a647aee2d28ad6eb2e6cfdf90af78915e"></a><!-- doxytag: member="ucommon::string::operator%" ref="a647aee2d28ad6eb2e6cfdf90af78915e" args="(const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator% </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse text from a string in a scan expression. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to scan and bypass. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>object in expression. </dd></dl>

</div>
</div>
<a class="anchor" id="a30de0b46d69a0fcda721002a0ef8f18f"></a><!-- doxytag: member="ucommon::string::operator%" ref="a30de0b46d69a0fcda721002a0ef8f18f" args="(double &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator% </td>
          <td>(</td>
          <td class="paramtype">double &amp;&nbsp;</td>
          <td class="paramname"> <em>value</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse double value from a string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>to store. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>object in expression. </dd></dl>

</div>
</div>
<a class="anchor" id="a48407ff7fc9215593eaca48a43cf3608"></a><!-- doxytag: member="ucommon::string::operator%" ref="a48407ff7fc9215593eaca48a43cf3608" args="(unsigned long &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator% </td>
          <td>(</td>
          <td class="paramtype">unsigned long &amp;&nbsp;</td>
          <td class="paramname"> <em>value</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse long integer value from a string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>to store. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>object in expression. </dd></dl>

</div>
</div>
<a class="anchor" id="a8ac55c830b24b32e8b743a20d49c5a2d"></a><!-- doxytag: member="ucommon::string::operator%" ref="a8ac55c830b24b32e8b743a20d49c5a2d" args="(long &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator% </td>
          <td>(</td>
          <td class="paramtype">long &amp;&nbsp;</td>
          <td class="paramname"> <em>value</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse long integer value from a string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>to store. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>object in expression. </dd></dl>

</div>
</div>
<a class="anchor" id="a89e28b802be601b26f01d7380bcc1c57"></a><!-- doxytag: member="ucommon::string::operator%" ref="a89e28b802be601b26f01d7380bcc1c57" args="(unsigned short &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator% </td>
          <td>(</td>
          <td class="paramtype">unsigned short &amp;&nbsp;</td>
          <td class="paramname"> <em>value</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse long integer value from a string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>to store. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>object in expression. </dd></dl>

</div>
</div>
<a class="anchor" id="a743328c1762ce46b2bff080689139817"></a><!-- doxytag: member="ucommon::string::operator%" ref="a743328c1762ce46b2bff080689139817" args="(short &amp;value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator% </td>
          <td>(</td>
          <td class="paramtype">short &amp;&nbsp;</td>
          <td class="paramname"> <em>value</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse short integer value from a string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>to store. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>object in expression. </dd></dl>

</div>
</div>
<a class="anchor" id="a68ae6d2638ddc59a85baba7e7a662a0e"></a><!-- doxytag: member="ucommon::string::operator&amp;" ref="a68ae6d2638ddc59a85baba7e7a662a0e" args="(const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator&amp; </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Concatenate null terminated text to our object. </p>
<p>This directly appends the text to the string buffer and does not resize the object if the existing cstring allocation space is fully used. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to concatenate. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adab43f47e887fd85c641f9cbbeaa44ef"></a><!-- doxytag: member="ucommon::string::operator()" ref="adab43f47e887fd85c641f9cbbeaa44ef" args="(int offset) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::operator() </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>offset</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reference a string in the object by relative offset. </p>
<p>Positive offsets are from the start of the string, negative from the end. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>to string position. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to string data or NULL if invalid offset. </dd></dl>

<p>Reimplemented in <a class="el" href="a00169.html#a6d44d293377496374917508fd2f87b97">ucommon::UString</a>.</p>

</div>
</div>
<a class="anchor" id="a4836156a7833e37354a0773c0427de04"></a><!-- doxytag: member="ucommon::string::operator()" ref="a4836156a7833e37354a0773c0427de04" args="(int offset, strsize_t size) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a> ucommon::string::operator() </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a new substring through object expression. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>of substring. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of substring or 0 if to end. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>string object holding substring. </dd></dl>

<p>Reimplemented in <a class="el" href="a00169.html#a1b940ca7746f0532e2f12a7f0eec8138">ucommon::UString</a>.</p>

</div>
</div>
<a class="anchor" id="af3c09cf0dd8225ce77ac16b14a7bfc6b"></a><!-- doxytag: member="ucommon::string::operator*" ref="af3c09cf0dd8225ce77ac16b14a7bfc6b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::operator* </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reference raw text buffer by pointer operator. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>null terminated text of string. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l00643">643</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae96eab78d2ec2c7eb79362cfaabe01c1"></a><!-- doxytag: member="ucommon::string::operator+" ref="ae96eab78d2ec2c7eb79362cfaabe01c1" args="(const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator+ </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Concatenate null terminated text to our object. </p>
<p>This creates a new copy-on-write instance to hold the concatenated string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to concatenate. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af206c13f172ebbbaf6217f385f0b9994"></a><!-- doxytag: member="ucommon::string::operator+=" ref="af206c13f172ebbbaf6217f385f0b9994" args="(strsize_t number)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator+= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>number</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete a specified number of characters from start of string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>number</em>&nbsp;</td><td>of characters to delete. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa149ccdb34ee5e4f6cadad9ab9bafc48"></a><!-- doxytag: member="ucommon::string::operator+=" ref="aa149ccdb34ee5e4f6cadad9ab9bafc48" args="(const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator+= </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Concatenate text to an existing string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to add. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>our object for expression use. </dd></dl>

</div>
</div>
<a class="anchor" id="a383cd1bcd332d72c4de5ad33d19a5162"></a><!-- doxytag: member="ucommon::string::operator&#45;=" ref="a383cd1bcd332d72c4de5ad33d19a5162" args="(strsize_t number)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator-= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>number</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Delete a specified number of characters from end of string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>number</em>&nbsp;</td><td>of characters to delete. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aac58ada0249880e0cf6480f5f6ecae1e"></a><!-- doxytag: member="ucommon::string::operator&lt;" ref="aac58ada0249880e0cf6480f5f6ecae1e" args="(const char *text) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::string::operator&lt; </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compare our object with null terminated text. </p>
<p>Compare method is used. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to compare with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if we are less than text. </dd></dl>

</div>
</div>
<a class="anchor" id="a399a26891f3b7b0705a16df58885776f"></a><!-- doxytag: member="ucommon::string::operator&lt;=" ref="a399a26891f3b7b0705a16df58885776f" args="(const char *text) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::string::operator&lt;= </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compare our object with null terminated text. </p>
<p>Compare method is used. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to compare with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if we are less than or equal to text. </dd></dl>

</div>
</div>
<a class="anchor" id="a25b1611be64125a1cb119ff48fc3fc3e"></a><!-- doxytag: member="ucommon::string::operator=" ref="a25b1611be64125a1cb119ff48fc3fc3e" args="(const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator= </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assign text to our existing buffer. </p>
<p>This performs a set method. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to assign from. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="a00082.html#af165c21734d42507653a6ad232e0d2d3">ucommon::memstring</a>, and <a class="el" href="a00150.html#a211b2ec3930328424edf36c7e3fb6106">ucommon::stringbuf&lt; S &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a6b26ada2bc4ddd598e9e424b6937c176"></a><!-- doxytag: member="ucommon::string::operator=" ref="a6b26ada2bc4ddd598e9e424b6937c176" args="(const string &amp;object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assign our string with the cstring of another object. </p>
<p>If we had an active string reference, it is released. The object now has a duplicate reference to the cstring of the other object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to assign from. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af4124c5c77277b95187b693127ec33ae"></a><!-- doxytag: member="ucommon::string::operator==" ref="af4124c5c77277b95187b693127ec33ae" args="(const char *text) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::string::operator== </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compare our object with null terminated text. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to compare with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if we are equal. </dd></dl>

</div>
</div>
<a class="anchor" id="aee704b6bf5a06122960146872fdfdf19"></a><!-- doxytag: member="ucommon::string::operator&gt;" ref="aee704b6bf5a06122960146872fdfdf19" args="(const char *text) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::string::operator&gt; </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compare our object with null terminated text. </p>
<p>Compare method is used. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to compare with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if we are greater than text. </dd></dl>

</div>
</div>
<a class="anchor" id="afc5c6fa0af5a48ff30d774457ecf78b9"></a><!-- doxytag: member="ucommon::string::operator&gt;=" ref="afc5c6fa0af5a48ff30d774457ecf78b9" args="(const char *text) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::string::operator&gt;= </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compare our object with null terminated text. </p>
<p>Compare method is used. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to compare with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if we are greater than or equal to text. </dd></dl>

</div>
</div>
<a class="anchor" id="a5345c861dff19ab98d28a8f4a1d6b74c"></a><!-- doxytag: member="ucommon::string::operator[]" ref="a5345c861dff19ab98d28a8f4a1d6b74c" args="(int offset) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char ucommon::string::operator[] </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>offset</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reference a single character in string object by array offset. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>to character. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>character value at offset. </dd></dl>

<p>Reimplemented in <a class="el" href="a00169.html#ac1e4964d8304356efebf7f43476caa40">ucommon::UString</a>.</p>

</div>
</div>
<a class="anchor" id="af964da1fe6756892a7a8b32b95dda93f"></a><!-- doxytag: member="ucommon::string::operator^=" ref="af964da1fe6756892a7a8b32b95dda93f" args="(const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator^= </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create new cow instance and assign value from null terminated text. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to assign from. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>our object for expression use. </dd></dl>

</div>
</div>
<a class="anchor" id="aab3da38909513706bbd8902c10b1f756"></a><!-- doxytag: member="ucommon::string::operator^=" ref="aab3da38909513706bbd8902c10b1f756" args="(const string &amp;object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00148.html">string</a>&amp; ucommon::string::operator^= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create new cow instance and assign value from another string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to assign from. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>our object for expression use. </dd></dl>

</div>
</div>
<a class="anchor" id="a0c933f3e2b8184e6f10145eeb735e9e5"></a><!-- doxytag: member="ucommon::string::printf" ref="a0c933f3e2b8184e6f10145eeb735e9e5" args="(string &amp;object, const char *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> ucommon::string::printf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Print formatted items into a string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to print into. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>string to print with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes written into object. </dd></dl>

</div>
</div>
<a class="anchor" id="ada2f1cc07bb19caba9ba6723d26f04ed"></a><!-- doxytag: member="ucommon::string::printf" ref="ada2f1cc07bb19caba9ba6723d26f04ed" args="(const char *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> ucommon::string::printf </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Print items into a string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>string of print format. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes written to string. </dd></dl>

</div>
</div>
<a class="anchor" id="ac9d88557fba522b535020c7851661684"></a><!-- doxytag: member="ucommon::string::rchr" ref="ac9d88557fba522b535020c7851661684" args="(char character) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::rchr </td>
          <td>(</td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>character</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find pointer in string where specified character last appears. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>character</em>&nbsp;</td><td>to find. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>string pointer for last occurrence of character if found, NULL if not. </dd></dl>

</div>
</div>
<a class="anchor" id="a77ff3e9e6b02ff871522c19dc99f0a17"></a><!-- doxytag: member="ucommon::string::release" ref="a77ff3e9e6b02ff871522c19dc99f0a17" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ucommon::string::release </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Decrease retention of our reference counted cstring. </p>
<p>May be overridden for memstring which has fixed cstring object. </p>

<p>Implements <a class="el" href="a00095.html#a2eb0d4a0fb083b3b52e5a2e61d37c489">ucommon::ObjectProtocol</a>.</p>

</div>
</div>
<a class="anchor" id="a8063294a549936d4420e519cb1d80d59"></a><!-- doxytag: member="ucommon::string::resize" ref="a8063294a549936d4420e519cb1d80d59" args="(strsize_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool ucommon::string::resize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resize and re-allocate string memory. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>to allocate for string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if re-allocated. False in derived memstring. </dd></dl>

</div>
</div>
<a class="anchor" id="a374d4c4108f576b1422971e168ffd79a"></a><!-- doxytag: member="ucommon::string::retain" ref="a374d4c4108f576b1422971e168ffd79a" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void ucommon::string::retain </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Increase retention of our reference counted cstring. </p>
<p>May be overridden for memstring which has fixed cstring object. </p>

<p>Implements <a class="el" href="a00095.html#ac39b84806d069dafc90d666ac2de34af">ucommon::ObjectProtocol</a>.</p>

</div>
</div>
<a class="anchor" id="ad71dee8ed7b5e9c13e502cafe025c41a"></a><!-- doxytag: member="ucommon::string::rfind" ref="ad71dee8ed7b5e9c13e502cafe025c41a" args="(string &amp;object, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* ucommon::string::rfind </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find last character in the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to search. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to search for. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to last occurrence of character. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01301">1301</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a3aaf0a4ec501844b1e5b6de413fe2514"></a><!-- doxytag: member="ucommon::string::rfind" ref="a3aaf0a4ec501844b1e5b6de413fe2514" args="(char *text, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::rfind </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find the last occurrence of a character in a text buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>buffer to examine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to search for. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to last instance found or NULL. </dd></dl>

</div>
</div>
<a class="anchor" id="a8f9e25ef7349850629ec848aa255cf9e"></a><!-- doxytag: member="ucommon::string::rfind" ref="a8f9e25ef7349850629ec848aa255cf9e" args="(const char *list, strsize_t offset=npos) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::rfind </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>offset</em> = <code><a class="el" href="a00148.html#a9bd0be57a8419e9634004f92678f240b">npos</a></code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find last occurrence of character in the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to search for. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>to start of search. Default is end of string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to last occurrence of character. </dd></dl>

</div>
</div>
<a class="anchor" id="acd38681d0c7bfa9765b08774e0b5c4b9"></a><!-- doxytag: member="ucommon::string::rset" ref="acd38681d0c7bfa9765b08774e0b5c4b9" args="(char *buffer, size_t size, const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::rset </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set a field in a null terminated string relative to the end of text. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>to modify. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of field to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to replace end of string with. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to text buffer. </dd></dl>

</div>
</div>
<a class="anchor" id="a020efb1f7464529e84b11208172faf96"></a><!-- doxytag: member="ucommon::string::rset" ref="a020efb1f7464529e84b11208172faf96" args="(const char *text, char overflow, strsize_t offset, strsize_t size=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::rset </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>overflow</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set a text field within our string object offset from the end of buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>overflow</em>&nbsp;</td><td>character to use as filler if text is too short. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>from end of object string buffer to set text at. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of part of buffer to set with text and overflow. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8be8bbfa4953b272dbc1246964695b54"></a><!-- doxytag: member="ucommon::string::rskip" ref="a8be8bbfa4953b272dbc1246964695b54" args="(char *text, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::rskip </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Skip before trailing characters in a null terminated string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>pointer to start at. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to skip when found. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to last part of string past skipped characters. </dd></dl>

</div>
</div>
<a class="anchor" id="a268ef5d39e089cf3613ec247db12cf59"></a><!-- doxytag: member="ucommon::string::rskip" ref="a268ef5d39e089cf3613ec247db12cf59" args="(const char *list, strsize_t offset=npos) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::rskip </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>offset</em> = <code><a class="el" href="a00148.html#a9bd0be57a8419e9634004f92678f240b">npos</a></code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Skip trailing characters in the string. </p>
<p>This searches the string in reverse order. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to skip when found. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>to start of scan. Default is end of string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to first part of string before skipped characters. </dd></dl>

</div>
</div>
<a class="anchor" id="ac60bbc104fdf1e14a47708fdf86b7422"></a><!-- doxytag: member="ucommon::string::rsplit" ref="ac60bbc104fdf1e14a47708fdf86b7422" args="(strsize_t offset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::rsplit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>offset</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Split the string at a specific offset. </p>
<p>Everything before the offset is removed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>to split position in string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a769acd6fbf5786bcb098bd7c10620759"></a><!-- doxytag: member="ucommon::string::rsplit" ref="a769acd6fbf5786bcb098bd7c10620759" args="(const char *pointer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::rsplit </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>pointer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Split the string by a pointer position. </p>
<p>Everything before the pointer is removed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to split position in string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a042771a0912a3ca1eeddabfa4b52d646"></a><!-- doxytag: member="ucommon::string::scanf" ref="a042771a0912a3ca1eeddabfa4b52d646" args="(string &amp;object, const char *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int ucommon::string::scanf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scan input items from a string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to scan from. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>string of input to scan. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of items scanned. </dd></dl>

</div>
</div>
<a class="anchor" id="abeeacce8847519b448e052598ce3e59f"></a><!-- doxytag: member="ucommon::string::scanf" ref="abeeacce8847519b448e052598ce3e59f" args="(const char *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ucommon::string::scanf </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scan input items from a string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>string of input to scan. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of items scanned. </dd></dl>

</div>
</div>
<a class="anchor" id="acef94afa0a66eb1c3a438044a597becd"></a><!-- doxytag: member="ucommon::string::set" ref="acef94afa0a66eb1c3a438044a597becd" args="(char *buffer, size_t size, const char *text, size_t max)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::set </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>max</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Safely set a null terminated string buffer in memory. </p>
<p>If the text is too large to fit into the buffer, it is truncated to the size. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of buffer. Includes null byte at end of string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to set in buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>max</em>&nbsp;</td><td>size of text to set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to text buffer. </dd></dl>

</div>
</div>
<a class="anchor" id="a63c2dc8d9883237ff34d034b869e25d9"></a><!-- doxytag: member="ucommon::string::set" ref="a63c2dc8d9883237ff34d034b869e25d9" args="(char *buffer, size_t size, const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::set </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Safely set a null terminated string buffer in memory. </p>
<p>If the text is too large to fit into the buffer, it is truncated to the size. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of buffer. Includes null byte at end of string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to set in buffer. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to text buffer. </dd></dl>

</div>
</div>
<a class="anchor" id="a861a9762166338efa9c7295bdf7efaad"></a><!-- doxytag: member="ucommon::string::set" ref="a861a9762166338efa9c7295bdf7efaad" args="(const char *text, char overflow, strsize_t offset, strsize_t size=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::set </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&nbsp;</td>
          <td class="paramname"> <em>overflow</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set a text field within our string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>overflow</em>&nbsp;</td><td>character to use as filler if text is too short. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>in object string buffer to set text at. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of part of buffer to set with text and overflow. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2948131726d5322450e9007968b84a5b"></a><!-- doxytag: member="ucommon::string::set" ref="a2948131726d5322450e9007968b84a5b" args="(strsize_t offset, const char *text, strsize_t size=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>size</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set a portion of the string object at a specified offset to a text string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>in object string buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to set at offset. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of text area to set or 0 until end of text. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae2bcac2d63a813efbb5bfa22ac1a3d40"></a><!-- doxytag: member="ucommon::string::set" ref="ae2bcac2d63a813efbb5bfa22ac1a3d40" args="(const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::set </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set string object to text of a null terminated string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>string to set. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2330a1b30c5fa95184c9e806fc0a79a2"></a><!-- doxytag: member="ucommon::string::size" ref="a2330a1b30c5fa95184c9e806fc0a79a2" args="(string &amp;object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> ucommon::string::size </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the size of currently allocated space for string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to examine. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>size allocated for text. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01212">1212</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a03d4795ec7f45ad6146994f7b49c732c"></a><!-- doxytag: member="ucommon::string::size" ref="a03d4795ec7f45ad6146994f7b49c732c" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> ucommon::string::size </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the size of currently allocated space for string. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>size allocated for text. </dd></dl>

</div>
</div>
<a class="anchor" id="ad001cf6dc52f1da5f5326d7df18b54e9"></a><!-- doxytag: member="ucommon::string::skip" ref="ad001cf6dc52f1da5f5326d7df18b54e9" args="(char *text, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::skip </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Skip after lead characters in a null terminated string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>pointer to start at. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to skip when found. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to first part of string past skipped characters. </dd></dl>

</div>
</div>
<a class="anchor" id="ad0835d1c1c0fccff4e6103dac6797b6b"></a><!-- doxytag: member="ucommon::string::skip" ref="ad0835d1c1c0fccff4e6103dac6797b6b" args="(const char *list, strsize_t offset=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* ucommon::string::skip </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>offset</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Skip lead characters in the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to skip when found. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>to start of scan. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to first part of string past skipped characters. </dd></dl>

</div>
</div>
<a class="anchor" id="a3b06750a2b500dbdaf4efe6842bb6f78"></a><!-- doxytag: member="ucommon::string::split" ref="a3b06750a2b500dbdaf4efe6842bb6f78" args="(strsize_t offset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::split </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a>&nbsp;</td>
          <td class="paramname"> <em>offset</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Split the string at a specific offset. </p>
<p>Everything after the offset is removed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>to split position in string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad5a44ba08c6210387dcdbbde66e34d07"></a><!-- doxytag: member="ucommon::string::split" ref="ad5a44ba08c6210387dcdbbde66e34d07" args="(const char *pointer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::split </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>pointer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Split the string by a pointer position. </p>
<p>Everything after the pointer is removed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to split position in string. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0dcc911e410437a36cdd1698564e04ec"></a><!-- doxytag: member="ucommon::string::strip" ref="a0dcc911e410437a36cdd1698564e04ec" args="(string &amp;object, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::string::strip </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Strip lead and trailing characters from the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to strip. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to remove. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01283">1283</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7174ef7b5005509287ef9ef221b1671e"></a><!-- doxytag: member="ucommon::string::strip" ref="a7174ef7b5005509287ef9ef221b1671e" args="(char *text, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::strip </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Skip lead and remove trailing characters from a text string. </p>
<p>This function will modify memory. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>buffer to examine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to trim and chop. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>position in text past lead trim. </dd></dl>

</div>
</div>
<a class="anchor" id="ab286757b42bfb30eee3c4f539ddabf4c"></a><!-- doxytag: member="ucommon::string::strip" ref="ab286757b42bfb30eee3c4f539ddabf4c" args="(const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::strip </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Strip lead and trailing characters from the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to remove. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5ee785811742ce23c16cb2d514793e4f"></a><!-- doxytag: member="ucommon::string::swap" ref="a5ee785811742ce23c16cb2d514793e4f" args="(string &amp;object1, string &amp;object2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::string::swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object2</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Swap the cstring references between two strings. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object1</em>&nbsp;</td><td>to swap. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>object2</em>&nbsp;</td><td>to swap. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa953dceed276685fd2b6bf9c957a7579"></a><!-- doxytag: member="ucommon::string::tod" ref="aa953dceed276685fd2b6bf9c957a7579" args="(const char *text, char **pointer=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double ucommon::string::tod </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>pointer</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert text to a double value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to convert. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to update with end of parsed value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>double value of object. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01346">1346</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a0d64f40bb87ff8650bed965c6c4bbe41"></a><!-- doxytag: member="ucommon::string::tod" ref="a0d64f40bb87ff8650bed965c6c4bbe41" args="(string &amp;object, char **pointer=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static double ucommon::string::tod </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>pointer</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert string to a double value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to convert. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to update with end of parsed value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>double value of object. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01328">1328</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a4794a0c2483d143afef9e2cca07138cc"></a><!-- doxytag: member="ucommon::string::token" ref="a4794a0c2483d143afef9e2cca07138cc" args="(string &amp;object, char **last, const char *list, const char *quote=NULL, const char *end=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::token </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>last</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>quote</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>end</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A thread-safe token parsing routine for strings objects. </p>
<p>This is related to strtok, but with safety checks for NULL values and a number of enhancements including support for quoted text that may contain token separators within quotes. The object is modified as it is parsed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to examine for tokens. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>last</em>&nbsp;</td><td>token position or set to NULL for start of string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to use as token separators. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>quote</em>&nbsp;</td><td>pairs of characters for quoted text or NULL if not used. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>end</em>&nbsp;</td><td>of line marker characters or NULL if not used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>token extracted from string or NULL if no more tokens found. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01168">1168</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<div class="center"><img src="a00148_a4794a0c2483d143afef9e2cca07138cc_cgraph.png" border="0" usemap="#a00148_a4794a0c2483d143afef9e2cca07138cc_cgraph_map" alt=""></div>
</div>
</p>

</div>
</div>
<a class="anchor" id="ae9e7793b5a2046ef570115a268aa3f4d"></a><!-- doxytag: member="ucommon::string::token" ref="ae9e7793b5a2046ef570115a268aa3f4d" args="(char *text, char **last, const char *list, const char *quote=NULL, const char *end=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::token </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>last</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>quote</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>end</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A thread-safe token parsing routine for null terminated strings. </p>
<p>This is related to strtok, but with safety checks for NULL values and a number of enhancements including support for quoted text that may contain token separators within quotes. The text string is modified as it is parsed. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>string to examine for tokens. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>last</em>&nbsp;</td><td>token position or set to NULL for start of string. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to use as token separators. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>quote</em>&nbsp;</td><td>pairs of characters for quoted text or NULL if not used. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>end</em>&nbsp;</td><td>of line marker characters or NULL if not used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>token extracted from string or NULL if no more tokens found. </dd></dl>

</div>
</div>
<a class="anchor" id="a06ed55f7cf4fbbf946437ee75fe746cf"></a><!-- doxytag: member="ucommon::string::tol" ref="a06ed55f7cf4fbbf946437ee75fe746cf" args="(const char *text, char **pointer=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static long ucommon::string::tol </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>pointer</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert text to a long value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to convert. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to update with end of parsed value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>long value of object. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01355">1355</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a34a84e34dda9f7a6c8c93792f0767c8a"></a><!-- doxytag: member="ucommon::string::tol" ref="a34a84e34dda9f7a6c8c93792f0767c8a" args="(string &amp;object, char **pointer=NULL)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static long ucommon::string::tol </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>pointer</em> = <code>NULL</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert string to a long value. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to convert. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to update with end of parsed value. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>long value of object. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01337">1337</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa10f5e3f00f40746c5b8951deac48b65"></a><!-- doxytag: member="ucommon::string::trim" ref="aa10f5e3f00f40746c5b8951deac48b65" args="(string &amp;object, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::string::trim </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Trim lead characters from the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to trim. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to remove. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01267">1267</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1b7a4fab8efbc255b1d83001f8cfd75a"></a><!-- doxytag: member="ucommon::string::trim" ref="a1b7a4fab8efbc255b1d83001f8cfd75a" args="(char *text, const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::trim </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return start of string after characters to trim from beginning. </p>
<p>This function does not modify memory. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>buffer to examine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to skip from start. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>position in text past lead trim. </dd></dl>

</div>
</div>
<a class="anchor" id="a15de49c9d3227280b64c7971b5bca039"></a><!-- doxytag: member="ucommon::string::trim" ref="a15de49c9d3227280b64c7971b5bca039" args="(const char *list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::string::trim </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>list</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Trim lead characters from the string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of characters to remove. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7f4a68a249b9868860b148ee7522561f"></a><!-- doxytag: member="ucommon::string::unquote" ref="a7f4a68a249b9868860b148ee7522561f" args="(string &amp;object, const char *quote)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool ucommon::string::unquote </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>quote</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unquote a quoted string. </p>
<p>Removes lead and trailing quote marks. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to unquote. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>quote</em>&nbsp;</td><td>pairs of characters for open and close quote. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if string was quoted. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01259">1259</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="a49a8fa90636e68c69a46eb394662823f"></a><!-- doxytag: member="ucommon::string::unquote" ref="a49a8fa90636e68c69a46eb394662823f" args="(char *text, const char *quote)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char* ucommon::string::unquote </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>quote</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unquote a quoted null terminated string. </p>
<p>Returns updated string position and replaces trailing quote with null byte if quoted. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to examine. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>quote</em>&nbsp;</td><td>pairs of character for open and close quote. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>new text pointer if quoted, NULL if unchanged. </dd></dl>

</div>
</div>
<a class="anchor" id="a4ccbfe036dd20efcde306a7b77cc9dca"></a><!-- doxytag: member="ucommon::string::unquote" ref="a4ccbfe036dd20efcde306a7b77cc9dca" args="(const char *quote)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ucommon::string::unquote </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>quote</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unquote a quoted string. </p>
<p>Removes lead and trailing quote marks. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>quote</em>&nbsp;</td><td>pairs of characters for open and close quote. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if string was quoted. </dd></dl>

</div>
</div>
<a class="anchor" id="acaf0d96e8f4d05d3458265619b7aca00"></a><!-- doxytag: member="ucommon::string::upper" ref="acaf0d96e8f4d05d3458265619b7aca00" args="(string &amp;object)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::string::upper </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert string object to upper case. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to modify. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01243">1243</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa4d43ec164f35765987f71b438767b73"></a><!-- doxytag: member="ucommon::string::upper" ref="aa4d43ec164f35765987f71b438767b73" args="(char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void ucommon::string::upper </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert null terminated text to upper case. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>to convert. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1e14956578d1d5fc78b9a161ede7d20b"></a><!-- doxytag: member="ucommon::string::vprintf" ref="a1e14956578d1d5fc78b9a161ede7d20b" args="(string &amp;object, const char *format, va_list args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> ucommon::string::vprintf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Print items into a string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to print into. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>string of print format. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>list to print. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes written to string. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01188">1188</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="aad6f7939f3c3b7f23e6ba8202253f40c"></a><!-- doxytag: member="ucommon::string::vprintf" ref="aad6f7939f3c3b7f23e6ba8202253f40c" args="(const char *format, va_list args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00208.html#aff28e825082cbb9ec24f288f210f34c6">strsize_t</a> ucommon::string::vprintf </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Print items into a string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>string of print format. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>list to print. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes written to string. </dd></dl>

</div>
</div>
<a class="anchor" id="a923377babb8f283008a4bea7b448ac15"></a><!-- doxytag: member="ucommon::string::vscanf" ref="a923377babb8f283008a4bea7b448ac15" args="(string &amp;object, const char *format, va_list args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int ucommon::string::vscanf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00148.html">string</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scan input items from a string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>to scan. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>string of input to scan. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>list to scan into. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of items scanned. </dd></dl>

<p>Definition at line <a class="el" href="a00201_source.html#l01178">1178</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<a class="anchor" id="ad128d8881bdff781df19f356741807b7"></a><!-- doxytag: member="ucommon::string::vscanf" ref="ad128d8881bdff781df19f356741807b7" args="(const char *format, va_list args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ucommon::string::vscanf </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scan input items from a string object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>string of input to scan. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>list to scan into. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of items scanned. </dd></dl>

</div>
</div>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="a76b6b3d50901489824b3dfeba5fed794"></a><!-- doxytag: member="ucommon::string::str" ref="a76b6b3d50901489824b3dfeba5fed794" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00149.html">cstring</a>* <a class="el" href="a00148.html#a76b6b3d50901489824b3dfeba5fed794">ucommon::string::str</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>cstring instance our object references. </p>

<p>Definition at line <a class="el" href="a00201_source.html#l00185">185</a> of file <a class="el" href="a00201_source.html">string.h</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ucommon/<a class="el" href="a00201_source.html">string.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Jul 14 16:40:07 2011 for ucommon by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>