Sophie

Sophie

distrib > Mageia > 6 > armv5tl > media > core-release > by-pkgid > 3a4e91bde08970529a0aa07935652fe8 > files > 983

icu-doc-58.2-3.mga6.noarch.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>ICU 58.2: uiter.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ICU 58.2
   &#160;<span id="projectnumber">58.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_b2f33c71d4aa5e7af42a1ca61ff5af1b.html">source</a></li><li class="navelem"><a class="el" href="dir_30087b5439e04c85304dbcf15650710b.html">common</a></li><li class="navelem"><a class="el" href="dir_8bf9c54ed6ca2fd1e2117fb037e4ad06.html">unicode</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">uiter.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>C API: Unicode Character Iteration.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="utypes_8h_source.html">unicode/utypes.h</a>&quot;</code><br />
</div>
<p><a href="uiter_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUCharIterator.html">UCharIterator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">C API for code unit iteration.  <a href="structUCharIterator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceicu"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceicu.html">icu</a></td></tr>
<tr class="memdesc:namespaceicu"><td class="mdescLeft">&#160;</td><td class="mdescRight">File <a class="el" href="coll_8h.html" title="C++ API: Collation Service. ">coll.h</a>. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aafcf208dc06e96d1a48221de2cd96f21"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#aafcf208dc06e96d1a48221de2cd96f21">UITER_NO_STATE</a>&#160;&#160;&#160;((uint32_t)0xffffffff)</td></tr>
<tr class="memdesc:aafcf208dc06e96d1a48221de2cd96f21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant for <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> getState() indicating an error or an unknown state.  <a href="#aafcf208dc06e96d1a48221de2cd96f21">More...</a><br /></td></tr>
<tr class="separator:aafcf208dc06e96d1a48221de2cd96f21"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a7be461ccdd9257329604393ce0ab982f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structUCharIterator.html">UCharIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a7be461ccdd9257329604393ce0ab982f">UCharIterator</a></td></tr>
<tr class="memdesc:a7be461ccdd9257329604393ce0ab982f"><td class="mdescLeft">&#160;</td><td class="mdescRight">C typedef for struct <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a>.  <a href="#a7be461ccdd9257329604393ce0ab982f">More...</a><br /></td></tr>
<tr class="separator:a7be461ccdd9257329604393ce0ab982f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72fb2307a4c54eeae9d249cfcbd5cde1"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="uiter_8h.html#acb93256d32b49b35a49affe3db4e5766">UCharIteratorOrigin</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a72fb2307a4c54eeae9d249cfcbd5cde1">UCharIteratorOrigin</a></td></tr>
<tr class="memdesc:a72fb2307a4c54eeae9d249cfcbd5cde1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Origin constants for <a class="el" href="structUCharIterator.html#a3d8274db3ff99ebb6bb2d0784c9cd7ca" title="(public) Returns the current position or the start or limit index of the iteration range...">UCharIterator.getIndex()</a> and <a class="el" href="structUCharIterator.html#a085355b29925cbf9170e364e9aef7bc5" title="(public) Moves the current position relative to the start or limit of the iteration range...">UCharIterator.move()</a>.  <a href="#a72fb2307a4c54eeae9d249cfcbd5cde1">More...</a><br /></td></tr>
<tr class="separator:a72fb2307a4c54eeae9d249cfcbd5cde1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c5cdcc035b270eecd9fefd3a8e61eb6"><td class="memItemLeft" align="right" valign="top">typedef int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a2c5cdcc035b270eecd9fefd3a8e61eb6">UCharIteratorGetIndex</a>(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, <a class="el" href="uiter_8h.html#acb93256d32b49b35a49affe3db4e5766">UCharIteratorOrigin</a> origin)</td></tr>
<tr class="memdesc:a2c5cdcc035b270eecd9fefd3a8e61eb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type declaration for <a class="el" href="structUCharIterator.html#a3d8274db3ff99ebb6bb2d0784c9cd7ca" title="(public) Returns the current position or the start or limit index of the iteration range...">UCharIterator.getIndex()</a>.  <a href="#a2c5cdcc035b270eecd9fefd3a8e61eb6">More...</a><br /></td></tr>
<tr class="separator:a2c5cdcc035b270eecd9fefd3a8e61eb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96e7ff26382bff30b61e04129dcba777"><td class="memItemLeft" align="right" valign="top">typedef int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a96e7ff26382bff30b61e04129dcba777">UCharIteratorMove</a>(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, int32_t delta, <a class="el" href="uiter_8h.html#acb93256d32b49b35a49affe3db4e5766">UCharIteratorOrigin</a> origin)</td></tr>
<tr class="memdesc:a96e7ff26382bff30b61e04129dcba777"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type declaration for <a class="el" href="structUCharIterator.html#a085355b29925cbf9170e364e9aef7bc5" title="(public) Moves the current position relative to the start or limit of the iteration range...">UCharIterator.move()</a>.  <a href="#a96e7ff26382bff30b61e04129dcba777">More...</a><br /></td></tr>
<tr class="separator:a96e7ff26382bff30b61e04129dcba777"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa64ffc5487dbe1d707c3761bf49ea290"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#aa64ffc5487dbe1d707c3761bf49ea290">UCharIteratorHasNext</a>(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td></tr>
<tr class="memdesc:aa64ffc5487dbe1d707c3761bf49ea290"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type declaration for <a class="el" href="structUCharIterator.html#ac6dc92d309ace93dc07ad9092e807578" title="(public) Check if current() and next() can still return another code unit. ">UCharIterator.hasNext()</a>.  <a href="#aa64ffc5487dbe1d707c3761bf49ea290">More...</a><br /></td></tr>
<tr class="separator:aa64ffc5487dbe1d707c3761bf49ea290"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2972212270826ec6cc2469e7e757a99b"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a2972212270826ec6cc2469e7e757a99b">UCharIteratorHasPrevious</a>(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td></tr>
<tr class="memdesc:a2972212270826ec6cc2469e7e757a99b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type declaration for <a class="el" href="structUCharIterator.html#a5a5d536cc7275cdba8b6b2487a4f75a6" title="(public) Check if previous() can still return another code unit. ">UCharIterator.hasPrevious()</a>.  <a href="#a2972212270826ec6cc2469e7e757a99b">More...</a><br /></td></tr>
<tr class="separator:a2972212270826ec6cc2469e7e757a99b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f6bcc32677477c92a0ca50c9758d209"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a1f6bcc32677477c92a0ca50c9758d209">UCharIteratorCurrent</a>(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td></tr>
<tr class="memdesc:a1f6bcc32677477c92a0ca50c9758d209"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type declaration for <a class="el" href="structUCharIterator.html#ac247dee1b3e3e6fec6688f9dcb5bc1c6" title="(public) Return the code unit at the current position, or U_SENTINEL if there is none (index is at th...">UCharIterator.current()</a>.  <a href="#a1f6bcc32677477c92a0ca50c9758d209">More...</a><br /></td></tr>
<tr class="separator:a1f6bcc32677477c92a0ca50c9758d209"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a376c5501f8368974019bd238df5bf25f"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a376c5501f8368974019bd238df5bf25f">UCharIteratorNext</a>(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td></tr>
<tr class="memdesc:a376c5501f8368974019bd238df5bf25f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type declaration for <a class="el" href="structUCharIterator.html#aae26243728a62e6a13ed2008972afb50" title="(public) Return the code unit at the current index and increment the index (post-increment, like s[i++]), or return U_SENTINEL if there is none (index is at the limit). ">UCharIterator.next()</a>.  <a href="#a376c5501f8368974019bd238df5bf25f">More...</a><br /></td></tr>
<tr class="separator:a376c5501f8368974019bd238df5bf25f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa264f21cccaadf857e2ffe8466275305"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#aa264f21cccaadf857e2ffe8466275305">UCharIteratorPrevious</a>(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td></tr>
<tr class="memdesc:aa264f21cccaadf857e2ffe8466275305"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type declaration for <a class="el" href="structUCharIterator.html#a65cd2a527c6abe69a0f37a368ce51cfb" title="(public) Decrement the index and return the code unit from there (pre-decrement, like s[–i])...">UCharIterator.previous()</a>.  <a href="#aa264f21cccaadf857e2ffe8466275305">More...</a><br /></td></tr>
<tr class="separator:aa264f21cccaadf857e2ffe8466275305"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acafec86a399b523670cc7575b7c070f6"><td class="memItemLeft" align="right" valign="top">typedef int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#acafec86a399b523670cc7575b7c070f6">UCharIteratorReserved</a>(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, int32_t something)</td></tr>
<tr class="memdesc:acafec86a399b523670cc7575b7c070f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type declaration for <a class="el" href="structUCharIterator.html#a94b7ab71aadd2cbafa7394c1102cdf2f" title="(public) Reserved for future use. ">UCharIterator.reservedFn()</a>.  <a href="#acafec86a399b523670cc7575b7c070f6">More...</a><br /></td></tr>
<tr class="separator:acafec86a399b523670cc7575b7c070f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e5c6a58e984e535dee8f7a76be33598"><td class="memItemLeft" align="right" valign="top">typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a7e5c6a58e984e535dee8f7a76be33598">UCharIteratorGetState</a>(const <a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td></tr>
<tr class="memdesc:a7e5c6a58e984e535dee8f7a76be33598"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type declaration for <a class="el" href="structUCharIterator.html#adbdac3a7450c4b9344aad58b1e72d1b4" title="(public) Return the state of the iterator, to be restored later with setState(). ">UCharIterator.getState()</a>.  <a href="#a7e5c6a58e984e535dee8f7a76be33598">More...</a><br /></td></tr>
<tr class="separator:a7e5c6a58e984e535dee8f7a76be33598"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a092db422640fc07b956d72f0f03fe9c3"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a092db422640fc07b956d72f0f03fe9c3">UCharIteratorSetState</a>(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, uint32_t state, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:a092db422640fc07b956d72f0f03fe9c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type declaration for <a class="el" href="structUCharIterator.html#ad216d787e1125bc81b49686c7700b52f" title="(public) Restore the iterator state from the state word from a call to getState(). ">UCharIterator.setState()</a>.  <a href="#a092db422640fc07b956d72f0f03fe9c3">More...</a><br /></td></tr>
<tr class="separator:a092db422640fc07b956d72f0f03fe9c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:acb93256d32b49b35a49affe3db4e5766"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#acb93256d32b49b35a49affe3db4e5766">UCharIteratorOrigin</a> { <br />
&#160;&#160;<b>UITER_START</b>, 
<b>UITER_CURRENT</b>, 
<b>UITER_LIMIT</b>, 
<b>UITER_ZERO</b>, 
<br />
&#160;&#160;<b>UITER_LENGTH</b>
<br />
 }<tr class="memdesc:acb93256d32b49b35a49affe3db4e5766"><td class="mdescLeft">&#160;</td><td class="mdescRight">Origin constants for <a class="el" href="structUCharIterator.html#a3d8274db3ff99ebb6bb2d0784c9cd7ca" title="(public) Returns the current position or the start or limit index of the iteration range...">UCharIterator.getIndex()</a> and <a class="el" href="structUCharIterator.html#a085355b29925cbf9170e364e9aef7bc5" title="(public) Moves the current position relative to the start or limit of the iteration range...">UCharIterator.move()</a>.  <a href="uiter_8h.html#acb93256d32b49b35a49affe3db4e5766">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:acb93256d32b49b35a49affe3db4e5766"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abed82baf7f470b522273a3e37c24c600"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <a class="el" href="uiter_8h.html#abed82baf7f470b522273a3e37c24c600ac15b49df57fe9ae213b64ef3fc05fd3a">UITER_UNKNOWN_INDEX</a> =-2
 }<tr class="memdesc:abed82baf7f470b522273a3e37c24c600"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants for <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a>.  <a href="uiter_8h.html#abed82baf7f470b522273a3e37c24c600">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:abed82baf7f470b522273a3e37c24c600"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a126d33b7d879ca2f8427004116c0340b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a126d33b7d879ca2f8427004116c0340b">uiter_current32</a> (<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td></tr>
<tr class="memdesc:a126d33b7d879ca2f8427004116c0340b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function for <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to get the code point at the current index.  <a href="#a126d33b7d879ca2f8427004116c0340b">More...</a><br /></td></tr>
<tr class="separator:a126d33b7d879ca2f8427004116c0340b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f5c726c5eba7d3c8fbc7238562be0cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a5f5c726c5eba7d3c8fbc7238562be0cf">uiter_next32</a> (<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td></tr>
<tr class="memdesc:a5f5c726c5eba7d3c8fbc7238562be0cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function for <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to get the next code point.  <a href="#a5f5c726c5eba7d3c8fbc7238562be0cf">More...</a><br /></td></tr>
<tr class="separator:a5f5c726c5eba7d3c8fbc7238562be0cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9225fa4316a792ba1585fc2ea8197afb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a9225fa4316a792ba1585fc2ea8197afb">uiter_previous32</a> (<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td></tr>
<tr class="memdesc:a9225fa4316a792ba1585fc2ea8197afb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function for <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to get the previous code point.  <a href="#a9225fa4316a792ba1585fc2ea8197afb">More...</a><br /></td></tr>
<tr class="separator:a9225fa4316a792ba1585fc2ea8197afb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a561ede314e6f46cd7662a0f309f9b18a"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a561ede314e6f46cd7662a0f309f9b18a">uiter_getState</a> (const <a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td></tr>
<tr class="memdesc:a561ede314e6f46cd7662a0f309f9b18a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the "state" of the iterator in the form of a single 32-bit word.  <a href="#a561ede314e6f46cd7662a0f309f9b18a">More...</a><br /></td></tr>
<tr class="separator:a561ede314e6f46cd7662a0f309f9b18a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cc978207c5f99588d5b915b7c85ebd1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a6cc978207c5f99588d5b915b7c85ebd1">uiter_setState</a> (<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, uint32_t state, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td></tr>
<tr class="memdesc:a6cc978207c5f99588d5b915b7c85ebd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restore the "state" of the iterator using a state word from a getState() call.  <a href="#a6cc978207c5f99588d5b915b7c85ebd1">More...</a><br /></td></tr>
<tr class="separator:a6cc978207c5f99588d5b915b7c85ebd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a373dbf81553f2f3553b64c31e3c6147f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a373dbf81553f2f3553b64c31e3c6147f">uiter_setString</a> (<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *s, int32_t length)</td></tr>
<tr class="memdesc:a373dbf81553f2f3553b64c31e3c6147f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up a <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to iterate over a string.  <a href="#a373dbf81553f2f3553b64c31e3c6147f">More...</a><br /></td></tr>
<tr class="separator:a373dbf81553f2f3553b64c31e3c6147f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91a1ae4d9d562077b5c06d7ba75c7ebd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a91a1ae4d9d562077b5c06d7ba75c7ebd">uiter_setUTF16BE</a> (<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, const char *s, int32_t length)</td></tr>
<tr class="memdesc:a91a1ae4d9d562077b5c06d7ba75c7ebd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up a <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to iterate over a UTF-16BE string (byte vector with a big-endian pair of bytes per UChar).  <a href="#a91a1ae4d9d562077b5c06d7ba75c7ebd">More...</a><br /></td></tr>
<tr class="separator:a91a1ae4d9d562077b5c06d7ba75c7ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa221e8b7a4eb6f47ff03c80a09ae8a02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#aa221e8b7a4eb6f47ff03c80a09ae8a02">uiter_setUTF8</a> (<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, const char *s, int32_t length)</td></tr>
<tr class="memdesc:aa221e8b7a4eb6f47ff03c80a09ae8a02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up a <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to iterate over a UTF-8 string.  <a href="#aa221e8b7a4eb6f47ff03c80a09ae8a02">More...</a><br /></td></tr>
<tr class="separator:aa221e8b7a4eb6f47ff03c80a09ae8a02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f6ca82c20ddc7f9844d0be7710b244d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a8f6ca82c20ddc7f9844d0be7710b244d">uiter_setCharacterIterator</a> (<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, <a class="el" href="classicu_1_1CharacterIterator.html">icu::CharacterIterator</a> *charIter)</td></tr>
<tr class="memdesc:a8f6ca82c20ddc7f9844d0be7710b244d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up a <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to wrap around a C++ CharacterIterator.  <a href="#a8f6ca82c20ddc7f9844d0be7710b244d">More...</a><br /></td></tr>
<tr class="separator:a8f6ca82c20ddc7f9844d0be7710b244d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c85ed2666d501ece8075158efdbeef6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uiter_8h.html#a3c85ed2666d501ece8075158efdbeef6">uiter_setReplaceable</a> (<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, const <a class="el" href="classicu_1_1Replaceable.html">icu::Replaceable</a> *rep)</td></tr>
<tr class="memdesc:a3c85ed2666d501ece8075158efdbeef6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up a <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to iterate over a C++ Replaceable.  <a href="#a3c85ed2666d501ece8075158efdbeef6">More...</a><br /></td></tr>
<tr class="separator:a3c85ed2666d501ece8075158efdbeef6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C API: Unicode Character Iteration. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>

<p>Definition in file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="aafcf208dc06e96d1a48221de2cd96f21"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UITER_NO_STATE&#160;&#160;&#160;((uint32_t)0xffffffff)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constant for <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> getState() indicating an error or an unknown state. </p>
<p>Returned by <a class="el" href="uiter_8h.html#a561ede314e6f46cd7662a0f309f9b18a" title="Get the &quot;state&quot; of the iterator in the form of a single 32-bit word. ">uiter_getState()</a>/UCharIteratorGetState when an error occurs. Also, some <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> implementations may not be able to return a valid state for each position. This will be clearly documented for each such iterator (none of the public ones here).</p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001776">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00086">86</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a7be461ccdd9257329604393ce0ab982f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structUCharIterator.html">UCharIterator</a> <a class="el" href="structUCharIterator.html">UCharIterator</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>C typedef for struct <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a>. </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001773">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00043">43</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<a class="anchor" id="a1f6bcc32677477c92a0ca50c9758d209"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> UCharIteratorCurrent(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function type declaration for <a class="el" href="structUCharIterator.html#ac247dee1b3e3e6fec6688f9dcb5bc1c6" title="(public) Return the code unit at the current position, or U_SENTINEL if there is none (index is at th...">UCharIterator.current()</a>. </p>
<p>Return the code unit at the current position, or U_SENTINEL if there is none (index is at the limit).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the current code unit</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001781">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00188">188</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2c5cdcc035b270eecd9fefd3a8e61eb6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int32_t UCharIteratorGetIndex(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, <a class="el" href="uiter_8h.html#acb93256d32b49b35a49affe3db4e5766">UCharIteratorOrigin</a> origin)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function type declaration for <a class="el" href="structUCharIterator.html#a3d8274db3ff99ebb6bb2d0784c9cd7ca" title="(public) Returns the current position or the start or limit index of the iteration range...">UCharIterator.getIndex()</a>. </p>
<p>Gets the current position, or the start or limit of the iteration range.</p>
<p>This function may perform slowly for UITER_CURRENT after setState() was called, or for UITER_LENGTH, because an iterator implementation may have to count UChars if the underlying storage is not UTF-16.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
    <tr><td class="paramname">origin</td><td>get the 0, start, limit, length, or current index </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the requested index, or U_SENTINEL in an error condition</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="uiter_8h.html#acb93256d32b49b35a49affe3db4e5766" title="Origin constants for UCharIterator.getIndex() and UCharIterator.move(). ">UCharIteratorOrigin</a> </dd>
<dd>
<a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001777">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00107">107</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<a class="anchor" id="a7e5c6a58e984e535dee8f7a76be33598"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint32_t UCharIteratorGetState(const <a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function type declaration for <a class="el" href="structUCharIterator.html#adbdac3a7450c4b9344aad58b1e72d1b4" title="(public) Return the state of the iterator, to be restored later with setState(). ">UCharIterator.getState()</a>. </p>
<p>Get the "state" of the iterator in the form of a single 32-bit word. It is recommended that the state value be calculated to be as small as is feasible. For strings with limited lengths, fewer than 32 bits may be sufficient.</p>
<p>This is used together with setState()/UCharIteratorSetState to save and restore the iterator position more efficiently than with getIndex()/move().</p>
<p>The iterator state is defined as a uint32_t value because it is designed for use in <a class="el" href="ucol_8h.html#a8c8ed92bb13577d6cd9a129b38a05d69" title="Gets the next count bytes of a sort key. ">ucol_nextSortKeyPart()</a> which provides 32 bits to store the state of the character iterator.</p>
<p>With some <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> implementations (e.g., UTF-8), getting and setting the UTF-16 index with existing functions (getIndex(UITER_CURRENT) followed by move(pos, UITER_ZERO)) is possible but relatively slow because the iterator has to "walk" from a known index to the requested one. This takes more time the farther it needs to go.</p>
<p>An opaque state value allows an iterator implementation to provide an internal index (UTF-8: the source byte array index) for fast, constant-time restoration.</p>
<p>After calling setState(), a getIndex(UITER_CURRENT) may be slow because the UTF-16 index may not be restored as well, but the iterator can deliver the correct text contents and move relative to the current position without performance degradation.</p>
<p>Some <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> implementations may not be able to return a valid state for each position, in which case they return UITER_NO_STATE instead. This will be clearly documented for each such iterator (none of the public ones here).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the state word</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd>
<dd>
<a class="el" href="uiter_8h.html#a092db422640fc07b956d72f0f03fe9c3" title="Function type declaration for UCharIterator.setState(). ">UCharIteratorSetState</a> </dd>
<dd>
<a class="el" href="uiter_8h.html#aafcf208dc06e96d1a48221de2cd96f21" title="Constant for UCharIterator getState() indicating an error or an unknown state. ">UITER_NO_STATE</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001785">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00281">281</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa64ffc5487dbe1d707c3761bf49ea290"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> UCharIteratorHasNext(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function type declaration for <a class="el" href="structUCharIterator.html#ac6dc92d309ace93dc07ad9092e807578" title="(public) Check if current() and next() can still return another code unit. ">UCharIterator.hasNext()</a>. </p>
<p>Check if current() and next() can still return another code unit.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean value for whether current() and next() can still return another code unit</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001779">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00159">159</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<a class="anchor" id="a2972212270826ec6cc2469e7e757a99b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> UCharIteratorHasPrevious(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function type declaration for <a class="el" href="structUCharIterator.html#a5a5d536cc7275cdba8b6b2487a4f75a6" title="(public) Check if previous() can still return another code unit. ">UCharIterator.hasPrevious()</a>. </p>
<p>Check if previous() can still return another code unit.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>boolean value for whether previous() can still return another code unit</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001780">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00173">173</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<a class="anchor" id="a96e7ff26382bff30b61e04129dcba777"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int32_t UCharIteratorMove(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, int32_t delta, <a class="el" href="uiter_8h.html#acb93256d32b49b35a49affe3db4e5766">UCharIteratorOrigin</a> origin)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function type declaration for <a class="el" href="structUCharIterator.html#a085355b29925cbf9170e364e9aef7bc5" title="(public) Moves the current position relative to the start or limit of the iteration range...">UCharIterator.move()</a>. </p>
<p>Use iter-&gt;move(iter, index, UITER_ZERO) like CharacterIterator::setIndex(index).</p>
<p>Moves the current position relative to the start or limit of the iteration range, or relative to the current position itself. The movement is expressed in numbers of code units forward or backward by specifying a positive or negative delta. Out of bounds movement will be pinned to the start or limit.</p>
<p>This function may perform slowly for moving relative to UITER_LENGTH because an iterator implementation may have to count the rest of the UChars if the native storage is not UTF-16.</p>
<p>When moving relative to the limit or length, or relative to the current position after setState() was called, move() may return UITER_UNKNOWN_INDEX (-2) to avoid an inefficient determination of the actual UTF-16 index. The actual index can be determined with getIndex(UITER_CURRENT) which will count the UChars if necessary. See UITER_UNKNOWN_INDEX for details.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
    <tr><td class="paramname">delta</td><td>can be positive, zero, or negative </td></tr>
    <tr><td class="paramname">origin</td><td>move relative to the 0, start, limit, length, or current index </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the new index, or U_SENTINEL on an error condition, or UITER_UNKNOWN_INDEX when the index is not known.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="uiter_8h.html#acb93256d32b49b35a49affe3db4e5766" title="Origin constants for UCharIterator.getIndex() and UCharIterator.move(). ">UCharIteratorOrigin</a> </dd>
<dd>
<a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd>
<dd>
<a class="el" href="uiter_8h.html#abed82baf7f470b522273a3e37c24c600ac15b49df57fe9ae213b64ef3fc05fd3a" title="Constant value that may be returned by UCharIteratorMove indicating that the final UTF-16 index is no...">UITER_UNKNOWN_INDEX</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001778">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00144">144</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<a class="anchor" id="a376c5501f8368974019bd238df5bf25f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> UCharIteratorNext(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function type declaration for <a class="el" href="structUCharIterator.html#aae26243728a62e6a13ed2008972afb50" title="(public) Return the code unit at the current index and increment the index (post-increment, like s[i++]), or return U_SENTINEL if there is none (index is at the limit). ">UCharIterator.next()</a>. </p>
<p>Return the code unit at the current index and increment the index (post-increment, like s[i++]), or return U_SENTINEL if there is none (index is at the limit).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the current code unit (and post-increment the current index)</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001782">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00204">204</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<a class="anchor" id="a72fb2307a4c54eeae9d249cfcbd5cde1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="uiter_8h.html#acb93256d32b49b35a49affe3db4e5766">UCharIteratorOrigin</a>  <a class="el" href="uiter_8h.html#acb93256d32b49b35a49affe3db4e5766">UCharIteratorOrigin</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Origin constants for <a class="el" href="structUCharIterator.html#a3d8274db3ff99ebb6bb2d0784c9cd7ca" title="(public) Returns the current position or the start or limit index of the iteration range...">UCharIterator.getIndex()</a> and <a class="el" href="structUCharIterator.html#a085355b29925cbf9170e364e9aef7bc5" title="(public) Moves the current position relative to the start or limit of the iteration range...">UCharIterator.move()</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="uiter_8h.html#a96e7ff26382bff30b61e04129dcba777" title="Function type declaration for UCharIterator.move(). ">UCharIteratorMove</a> </dd>
<dd>
<a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001774">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

</div>
</div>
<a class="anchor" id="aa264f21cccaadf857e2ffe8466275305"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> UCharIteratorPrevious(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function type declaration for <a class="el" href="structUCharIterator.html#a65cd2a527c6abe69a0f37a368ce51cfb" title="(public) Decrement the index and return the code unit from there (pre-decrement, like s[–i])...">UCharIterator.previous()</a>. </p>
<p>Decrement the index and return the code unit from there (pre-decrement, like s[&ndash;i]), or return U_SENTINEL if there is none (index is at the start).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the previous code unit (after pre-decrementing the current index)</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001783">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00220">220</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<a class="anchor" id="acafec86a399b523670cc7575b7c070f6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int32_t UCharIteratorReserved(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, int32_t something)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function type declaration for <a class="el" href="structUCharIterator.html#a94b7ab71aadd2cbafa7394c1102cdf2f" title="(public) Reserved for future use. ">UCharIterator.reservedFn()</a>. </p>
<p>Reserved for future use.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
    <tr><td class="paramname">something</td><td>some integer argument </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>some integer</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001784">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00234">234</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<a class="anchor" id="a092db422640fc07b956d72f0f03fe9c3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void UCharIteratorSetState(<a class="el" href="structUCharIterator.html">UCharIterator</a> *iter, uint32_t state, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *pErrorCode)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function type declaration for <a class="el" href="structUCharIterator.html#ad216d787e1125bc81b49686c7700b52f" title="(public) Restore the iterator state from the state word from a call to getState(). ">UCharIterator.setState()</a>. </p>
<p>Restore the "state" of the iterator using a state word from a getState() call. The iterator object need not be the same one as for which getState() was called, but it must be of the same type (set up using the same uiter_setXYZ function) and it must iterate over the same string (binary identical regardless of memory address). For more about the state word see UCharIteratorGetState.</p>
<p>After calling setState(), a getIndex(UITER_CURRENT) may be slow because the UTF-16 index may not be restored as well, but the iterator can deliver the correct text contents and move relative to the current position without performance degradation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
    <tr><td class="paramname">state</td><td>the state word from a getState() call on a same-type, same-string iterator </td></tr>
    <tr><td class="paramname">pErrorCode</td><td>Must be a valid pointer to an error code value, which must not indicate a failure before the function call.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd>
<dd>
<a class="el" href="uiter_8h.html#a7e5c6a58e984e535dee8f7a76be33598" title="Function type declaration for UCharIterator.getState(). ">UCharIteratorGetState</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001786">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00309">309</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="abed82baf7f470b522273a3e37c24c600"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constants for <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a>. </p>
<dl class="stable"><dt><b>Stable:</b></dt><dd>ICU 2.6 </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="abed82baf7f470b522273a3e37c24c600ac15b49df57fe9ae213b64ef3fc05fd3a"></a>UITER_UNKNOWN_INDEX&#160;</td><td class="fielddoc">
<p>Constant value that may be returned by UCharIteratorMove indicating that the final UTF-16 index is not known, but that the move succeeded. </p>
<p>This can occur when moving relative to limit or length, or when moving relative to the current index after a setState() when the current UTF-16 index is not known.</p>
<p>It would be very inefficient to have to count from the beginning of the text just to get the current/limit/length index after moving relative to it. The actual index can be determined with getIndex(UITER_CURRENT) which will count the UChars if necessary.</p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001798">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>
</td></tr>
</table>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00056">56</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<a class="anchor" id="acb93256d32b49b35a49affe3db4e5766"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="uiter_8h.html#acb93256d32b49b35a49affe3db4e5766">UCharIteratorOrigin</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Origin constants for <a class="el" href="structUCharIterator.html#a3d8274db3ff99ebb6bb2d0784c9cd7ca" title="(public) Returns the current position or the start or limit index of the iteration range...">UCharIterator.getIndex()</a> and <a class="el" href="structUCharIterator.html#a085355b29925cbf9170e364e9aef7bc5" title="(public) Moves the current position relative to the start or limit of the iteration range...">UCharIterator.move()</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="uiter_8h.html#a96e7ff26382bff30b61e04129dcba777" title="Function type declaration for UCharIterator.move(). ">UCharIteratorMove</a> </dd>
<dd>
<a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001774">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

<p>Definition at line <a class="el" href="uiter_8h_source.html#l00051">51</a> of file <a class="el" href="uiter_8h_source.html">uiter.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a126d33b7d879ca2f8427004116c0340b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> uiter_current32 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUCharIterator.html">UCharIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Helper function for <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to get the code point at the current index. </p>
<p>Return the code point that includes the code unit at the current position, or U_SENTINEL if there is none (index is at the limit). If the current code unit is a lead or trail surrogate, then the following or preceding surrogate is used to form the code point value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the current code point</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd>
<dd>
<a class="el" href="utf16_8h.html#aa354b12f5f755fe734f957cde6d68bbe" title="Get a code point from a string at a random-access offset, without changing the offset. ">U16_GET</a> </dd>
<dd>
UnicodeString::char32At() </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001788">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

</div>
</div>
<a class="anchor" id="a561ede314e6f46cd7662a0f309f9b18a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t uiter_getState </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structUCharIterator.html">UCharIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the "state" of the iterator in the form of a single 32-bit word. </p>
<p>This is a convenience function that calls iter-&gt;getState(iter) if iter-&gt;getState is not NULL; if it is NULL or any other error occurs, then UITER_NO_STATE is returned.</p>
<p>Some <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> implementations may not be able to return a valid state for each position, in which case they return UITER_NO_STATE instead. This will be clearly documented for each such iterator (none of the public ones here).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the state word</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd>
<dd>
<a class="el" href="uiter_8h.html#a7e5c6a58e984e535dee8f7a76be33598" title="Function type declaration for UCharIterator.getState(). ">UCharIteratorGetState</a> </dd>
<dd>
<a class="el" href="uiter_8h.html#aafcf208dc06e96d1a48221de2cd96f21" title="Constant for UCharIterator getState() indicating an error or an unknown state. ">UITER_NO_STATE</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001791">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

</div>
</div>
<a class="anchor" id="a5f5c726c5eba7d3c8fbc7238562be0cf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> uiter_next32 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUCharIterator.html">UCharIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Helper function for <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to get the next code point. </p>
<p>Return the code point at the current index and increment the index (post-increment, like s[i++]), or return U_SENTINEL if there is none (index is at the limit).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the current code point (and post-increment the current index)</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd>
<dd>
<a class="el" href="utf16_8h.html#a844bb48486904fdca40c8b883e9c80ee" title="Get a code point from a string at a code point boundary offset, and advance the offset to the next co...">U16_NEXT</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001789">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

</div>
</div>
<a class="anchor" id="a9225fa4316a792ba1585fc2ea8197afb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> uiter_previous32 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUCharIterator.html">UCharIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Helper function for <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to get the previous code point. </p>
<p>Decrement the index and return the code point from there (pre-decrement, like s[&ndash;i]), or return U_SENTINEL if there is none (index is at the start).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the previous code point (after pre-decrementing the current index)</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd>
<dd>
<a class="el" href="utf16_8h.html#a592fa1f80da119e1c4565dc9193c18d9" title="Move the string offset from one code point boundary to the previous one and get the code point betwee...">U16_PREV</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001790">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

</div>
</div>
<a class="anchor" id="a8f6ca82c20ddc7f9844d0be7710b244d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void uiter_setCharacterIterator </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUCharIterator.html">UCharIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classicu_1_1CharacterIterator.html">icu::CharacterIterator</a> *&#160;</td>
          <td class="paramname"><em>charIter</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set up a <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to wrap around a C++ CharacterIterator. </p>
<p>Sets the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> function pointers for iteration using the CharacterIterator charIter.</p>
<p>The CharacterIterator pointer charIter is set into <a class="el" href="structUCharIterator.html#a33f323cfae0faa809f047874d2021fe6" title="(protected) Pointer to string or wrapped object or similar. ">UCharIterator.context</a> without copying or cloning the CharacterIterator object. The other "protected" <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> fields are set to 0 and will be ignored. The iteration index and boundaries are controlled by the CharacterIterator.</p>
<p>getState() simply returns the current index. move() will always return the final index.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure to be set for iteration </td></tr>
    <tr><td class="paramname">charIter</td><td>CharacterIterator to wrap</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001796">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

</div>
</div>
<a class="anchor" id="a3c85ed2666d501ece8075158efdbeef6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void uiter_setReplaceable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUCharIterator.html">UCharIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classicu_1_1Replaceable.html">icu::Replaceable</a> *&#160;</td>
          <td class="paramname"><em>rep</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set up a <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to iterate over a C++ Replaceable. </p>
<p>Sets the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> function pointers for iteration over the Replaceable rep with iteration boundaries start=index=0 and length=limit=rep-&gt;length(). The "provider" may set the start, index, and limit values at any time within the range 0..length=rep-&gt;length(). The length field will be ignored.</p>
<p>The Replaceable pointer rep is set into <a class="el" href="structUCharIterator.html#a33f323cfae0faa809f047874d2021fe6" title="(protected) Pointer to string or wrapped object or similar. ">UCharIterator.context</a> without copying or cloning/reallocating the Replaceable object.</p>
<p>getState() simply returns the current index. move() will always return the final index.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure to be set for iteration </td></tr>
    <tr><td class="paramname">rep</td><td>Replaceable to iterate over</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001797">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

</div>
</div>
<a class="anchor" id="a6cc978207c5f99588d5b915b7c85ebd1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void uiter_setState </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUCharIterator.html">UCharIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> *&#160;</td>
          <td class="paramname"><em>pErrorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Restore the "state" of the iterator using a state word from a getState() call. </p>
<p>This is a convenience function that calls iter-&gt;setState(iter, state, pErrorCode) if iter-&gt;setState is not NULL; if it is NULL, then U_UNSUPPORTED_ERROR is set.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure ("this pointer") </td></tr>
    <tr><td class="paramname">state</td><td>the state word from a getState() call on a same-type, same-string iterator </td></tr>
    <tr><td class="paramname">pErrorCode</td><td>Must be a valid pointer to an error code value, which must not indicate a failure before the function call.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd>
<dd>
<a class="el" href="uiter_8h.html#a092db422640fc07b956d72f0f03fe9c3" title="Function type declaration for UCharIterator.setState(). ">UCharIteratorSetState</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001792">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

</div>
</div>
<a class="anchor" id="a373dbf81553f2f3553b64c31e3c6147f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void uiter_setString </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUCharIterator.html">UCharIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set up a <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to iterate over a string. </p>
<p>Sets the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> function pointers for iteration over the string s with iteration boundaries start=index=0 and length=limit=string length. The "provider" may set the start, index, and limit values at any time within the range 0..length. The length field will be ignored.</p>
<p>The string pointer s is set into <a class="el" href="structUCharIterator.html#a33f323cfae0faa809f047874d2021fe6" title="(protected) Pointer to string or wrapped object or similar. ">UCharIterator.context</a> without copying or reallocating the string contents.</p>
<p>getState() simply returns the current index. move() will always return the final index.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure to be set for iteration </td></tr>
    <tr><td class="paramname">s</td><td>String to iterate over </td></tr>
    <tr><td class="paramname">length</td><td>Length of s, or -1 if NUL-terminated</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001793">Stable:</a></b></dt><dd>ICU 2.1 </dd></dl>

</div>
</div>
<a class="anchor" id="a91a1ae4d9d562077b5c06d7ba75c7ebd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void uiter_setUTF16BE </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUCharIterator.html">UCharIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set up a <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to iterate over a UTF-16BE string (byte vector with a big-endian pair of bytes per UChar). </p>
<p>Everything works just like with a normal UChar iterator (uiter_setString), except that UChars are assembled from byte pairs, and that the length argument here indicates an even number of bytes.</p>
<p>getState() simply returns the current index. move() will always return the final index.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure to be set for iteration </td></tr>
    <tr><td class="paramname">s</td><td>UTF-16BE string to iterate over </td></tr>
    <tr><td class="paramname">length</td><td>Length of s as an even number of bytes, or -1 if NUL-terminated (NUL means pair of 0 bytes at even index from s)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd>
<dd>
<a class="el" href="uiter_8h.html#a373dbf81553f2f3553b64c31e3c6147f" title="Set up a UCharIterator to iterate over a string. ">uiter_setString</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001794">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

</div>
</div>
<a class="anchor" id="aa221e8b7a4eb6f47ff03c80a09ae8a02"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void uiter_setUTF8 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structUCharIterator.html">UCharIterator</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set up a <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> to iterate over a UTF-8 string. </p>
<p>Sets the <a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> function pointers for iteration over the UTF-8 string s with UTF-8 iteration boundaries 0 and length. The implementation counts the UTF-16 index on the fly and lazily evaluates the UTF-16 length of the text.</p>
<p>The start field is used as the UTF-8 offset, the limit field as the UTF-8 length. When the reservedField is not 0, then it contains a supplementary code point and the UTF-16 index is between the two corresponding surrogates. At that point, the UTF-8 index is behind that code point.</p>
<p>The UTF-8 string pointer s is set into <a class="el" href="structUCharIterator.html#a33f323cfae0faa809f047874d2021fe6" title="(protected) Pointer to string or wrapped object or similar. ">UCharIterator.context</a> without copying or reallocating the string contents.</p>
<p>getState() returns a state value consisting of</p><ul>
<li>the current UTF-8 source byte index (bits 31..1)</li>
<li>a flag (bit 0) that indicates whether the UChar position is in the middle of a surrogate pair (from a 4-byte UTF-8 sequence for the corresponding supplementary code point)</li>
</ul>
<p>getState() cannot also encode the UTF-16 index in the state value. move(relative to limit or length), or move(relative to current) after setState(), may return UITER_UNKNOWN_INDEX.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> structure to be set for iteration </td></tr>
    <tr><td class="paramname">s</td><td>UTF-8 string to iterate over </td></tr>
    <tr><td class="paramname">length</td><td>Length of s in bytes, or -1 if NUL-terminated</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structUCharIterator.html" title="C API for code unit iteration. ">UCharIterator</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable001795">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>