<ulclass="crumbs"><li><ahref="../index.html">Home</a></li><li><ahref="index.html">foundation</a></li><li><ahref="index.html#4">Chapter 4: Text Handling</a></li><li><b>Wide Strings</b></li></ul><pclass="purpose">A minimal library for handling wide C strings.</p>
<pclass="inwebparagraph"><aid="SP1"></a><b>§1. </b>By "wide string", we mean an array of <codeclass="display"><spanclass="extract">wchar_t</span></code>. A pointer to this type
is what is returned by an L-literal in ANSI C, such as <codeclass="display"><spanclass="extract">L"look, I'm wide"</span></code>.
A wide string is essentially a C string but with characters stored in full
words instead of bytes. The character values should be Unicode code points.
</p>
<pclass="inwebparagraph">We will do as little as possible with wide strings, and the following
wrappers simply abstract the standard C library's handling.
<spanclass="reserved">int</span><spanclass="plain"></span><spanclass="functiontext">Wide::len<buttonclass="popup"onclick="togglePopup('usagePopup264')">...<spanclass="popuptext"id="usagePopup264">Usage of <b>Wide::len</b>:<br>Tries and Avinues - <ahref="4-taa.html#SP2_3">§2.3</a></span></button></span><spanclass="plain">(</span><spanclass="identifier">wchar_t</span><spanclass="plain"> *</span><spanclass="identifier">p</span><spanclass="plain">) {</span>
<spanclass="reserved">int</span><spanclass="plain"></span><spanclass="functiontext">Wide::atoi<buttonclass="popup"onclick="togglePopup('usagePopup266')">...<spanclass="popuptext"id="usagePopup266">Usage of <b>Wide::atoi</b>:<br>none</span></button></span><spanclass="plain">(</span><spanclass="identifier">wchar_t</span><spanclass="plain"> *</span><spanclass="identifier">p</span><spanclass="plain">) {</span>
<ulclass="toc"><li><ahref="4-cst.html">Back to 'C Strings'</a></li><li><ahref="4-sm.html">Continue with 'String Manipulation'</a></li></ul><hrclass="tocbar">