<!-- This comment will put IE 6, 7 and 8 in quirks mode --> <!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>ICU 4.4.1: unistr.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javaScript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body onload='searchBox.OnSelectItem(0);'> <!-- Generated by Doxygen 1.6.2-20100208 --> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search'); --></script> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <img id="MSearchSelect" src="search/search.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </div> </li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div class="contents"> <h1>unistr.h File Reference</h1> <p>C++ API: Unicode String. <a href="#_details">More...</a></p> <code>#include "<a class="el" href="utypes_8h_source.html">unicode/utypes.h</a>"</code><br/> <code>#include "<a class="el" href="rep_8h_source.html">unicode/rep.h</a>"</code><br/> <code>#include "<a class="el" href="std__string_8h_source.html">unicode/std_string.h</a>"</code><br/> <code>#include "<a class="el" href="stringpiece_8h_source.html">unicode/stringpiece.h</a>"</code><br/> <code>#include "<a class="el" href="bytestream_8h_source.html">unicode/bytestream.h</a>"</code><br/> <p><a href="unistr_8h_source.html">Go to the source code of this file.</a></p> <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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classUnicodeString.html">UnicodeString</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> is a string class that stores Unicode characters directly and provides similar functionality as the Java String and StringBuffer classes. <a href="classUnicodeString.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">union </td><td class="memItemRight" valign="bottom"><b>UnicodeString::StackBufferOrFields</b></td></tr> <tr><td colspan="2"><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="unistr_8h.html#a7fd781b068b28ee2db708090aa32df8f">U_COMPARE_CODE_POINT_ORDER</a> 0x8000</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Option bit for u_strCaseCompare, u_strcasecmp, unorm_compare, etc: Compare strings in code point order instead of code unit order. <a href="#a7fd781b068b28ee2db708090aa32df8f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="unistr_8h.html#a308c066384b8560030fb3482bcb13381">US_INV</a> U_NAMESPACE_QUALIFIER UnicodeString::kInvariant</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constant to be used in the UnicodeString(char *, int32_t, EInvariant) constructor which constructs a Unicode string from an invariant-character char * string. <a href="#a308c066384b8560030fb3482bcb13381"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="unistr_8h.html#aeab1ff09f666cf5fce35fc88cf37d714">UNICODE_STRING</a>(cs, _length) U_NAMESPACE_QUALIFIER <a class="el" href="classUnicodeString.html">UnicodeString</a>(TRUE, (const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *)U_DECLARE_UTF16(cs), _length)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Unicode String literals in C++. <a href="#aeab1ff09f666cf5fce35fc88cf37d714"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="unistr_8h.html#a6cd56429cbf4fe567a97c9d1a46e96ae">UNICODE_STRING_SIMPLE</a>(cs) UNICODE_STRING(cs, -1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Unicode String literals in C++. <a href="#a6cd56429cbf4fe567a97c9d1a46e96ae"></a><br/></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ustring__ustrlen.html#gac4d8a5581fc5bde71d62ebd0a7a84ec5">u_strlen</a> (const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *s)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine the length of an array of UChar. <a href="group__ustring__ustrlen.html#gac4d8a5581fc5bde71d62ebd0a7a84ec5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">U_COMMON_API <a class="el" href="classUnicodeString.html">UnicodeString</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="unistr_8h.html#a9ba928a0602f95e68a1973dc26970ca5">operator+</a> (const <a class="el" href="classUnicodeString.html">UnicodeString</a> &s1, const <a class="el" href="classUnicodeString.html">UnicodeString</a> &s2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a new <a class="el" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> with the concatenation of two others. <a href="#a9ba928a0602f95e68a1973dc26970ca5"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>C++ API: Unicode String. </p> <p>Definition in file <a class="el" href="unistr_8h_source.html">unistr.h</a>.</p> <hr/><h2>Define Documentation</h2> <a class="anchor" id="a7fd781b068b28ee2db708090aa32df8f"></a><!-- doxytag: member="unistr.h::U_COMPARE_CODE_POINT_ORDER" ref="a7fd781b068b28ee2db708090aa32df8f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define U_COMPARE_CODE_POINT_ORDER 0x8000</td> </tr> </table> </div> <div class="memdoc"> <p>Option bit for u_strCaseCompare, u_strcasecmp, unorm_compare, etc: Compare strings in code point order instead of code unit order. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001444">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl> <p>Definition at line <a class="el" href="unistr_8h_source.html#l00045">45</a> of file <a class="el" href="unistr_8h_source.html">unistr.h</a>.</p> </div> </div> <a class="anchor" id="aeab1ff09f666cf5fce35fc88cf37d714"></a><!-- doxytag: member="unistr.h::UNICODE_STRING" ref="aeab1ff09f666cf5fce35fc88cf37d714" args="(cs, _length)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define UNICODE_STRING</td> <td>(</td> <td class="paramtype">cs, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">_length </td> <td class="paramname"></td> <td> ) </td> <td> U_NAMESPACE_QUALIFIER <a class="el" href="classUnicodeString.html">UnicodeString</a>(TRUE, (const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *)U_DECLARE_UTF16(cs), _length)</td> </tr> </table> </div> <div class="memdoc"> <p>Unicode String literals in C++. </p> <p>Dependent on the platform properties, different <a class="el" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> constructors should be used to create a <a class="el" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> object from a string literal. The macros are defined for maximum performance. They work only for strings that contain "invariant characters", i.e., only latin letters, digits, and some punctuation. See <a class="el" href="utypes_8h.html" title="Basic definitions for ICU, for both C and C++ APIs.">utypes.h</a> for details.</p> <p>The string parameter must be a C string literal. The length of the string, not including the terminating <code>NUL</code>, must be specified as a constant. The U_STRING_DECL macro should be invoked exactly once for one such string variable before it is used. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001446">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="unistr_8h_source.html#l00094">94</a> of file <a class="el" href="unistr_8h_source.html">unistr.h</a>.</p> </div> </div> <a class="anchor" id="a6cd56429cbf4fe567a97c9d1a46e96ae"></a><!-- doxytag: member="unistr.h::UNICODE_STRING_SIMPLE" ref="a6cd56429cbf4fe567a97c9d1a46e96ae" args="(cs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define UNICODE_STRING_SIMPLE</td> <td>(</td> <td class="paramtype">cs </td> <td class="paramname"></td> <td> ) </td> <td> UNICODE_STRING(cs, -1)</td> </tr> </table> </div> <div class="memdoc"> <p>Unicode String literals in C++. </p> <p>Dependent on the platform properties, different <a class="el" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> constructors should be used to create a <a class="el" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> object from a string literal. The macros are defined for improved performance. They work only for strings that contain "invariant characters", i.e., only latin letters, digits, and some punctuation. See <a class="el" href="utypes_8h.html" title="Basic definitions for ICU, for both C and C++ APIs.">utypes.h</a> for details.</p> <p>The string parameter must be a C string literal. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001447">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="unistr_8h_source.html#l00116">116</a> of file <a class="el" href="unistr_8h_source.html">unistr.h</a>.</p> </div> </div> <a class="anchor" id="a308c066384b8560030fb3482bcb13381"></a><!-- doxytag: member="unistr.h::US_INV" ref="a308c066384b8560030fb3482bcb13381" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define US_INV U_NAMESPACE_QUALIFIER UnicodeString::kInvariant</td> </tr> </table> </div> <div class="memdoc"> <p>Constant to be used in the UnicodeString(char *, int32_t, EInvariant) constructor which constructs a Unicode string from an invariant-character char * string. </p> <p>About invariant characters see <a class="el" href="utypes_8h.html" title="Basic definitions for ICU, for both C and C++ APIs.">utypes.h</a>. This constructor has no runtime dependency on conversion code and is therefore recommended over ones taking a charset name string (where the empty string "" indicates invariant-character conversion).</p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001445">Stable:</a></b></dt><dd>ICU 3.2 </dd></dl> <p>Definition at line <a class="el" href="unistr_8h_source.html#l00074">74</a> of file <a class="el" href="unistr_8h_source.html">unistr.h</a>.</p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a9ba928a0602f95e68a1973dc26970ca5"></a><!-- doxytag: member="unistr.h::operator+" ref="a9ba928a0602f95e68a1973dc26970ca5" args="(const UnicodeString &s1, const UnicodeString &s2)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">U_COMMON_API <a class="el" href="classUnicodeString.html">UnicodeString</a> operator+ </td> <td>(</td> <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> & </td> <td class="paramname"> <em>s1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classUnicodeString.html">UnicodeString</a> & </td> <td class="paramname"> <em>s2</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Create a new <a class="el" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> with the concatenation of two others. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>s1</em> </td><td>The first string to be copied to the new one. </td></tr> <tr><td valign="top"></td><td valign="top"><em>s2</em> </td><td>The second string to be copied to the new one, after s1. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>UnicodeString(s1).append(s2) </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable001449">Stable:</a></b></dt><dd>ICU 2.8 </dd></dl> </div> </div> </div> <!--- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Defines</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>