📄 classpstring.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>PString class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.18 --><center><a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center><hr><h1>PString Class Reference</h1><code>#include <<a class="el" href="pstring_8h-source.html">pstring.h</a>></code><p><p>Inheritance diagram for PString:<p><center><img src="classPString.png" usemap="#PString_map" border="0" alt=""></center><map name="PString_map"><area href="classPCharArray.html" alt="PCharArray" shape="rect" coords="0,0,153,24"><area href="classPCaselessString.html" alt="PCaselessString" shape="rect" coords="163,112,316,136"><area href="classPDirectory.html" alt="PDirectory" shape="rect" coords="163,168,316,192"><area href="classPFilePath.html" alt="PFilePath" shape="rect" coords="163,224,316,248"><area href="classPFilePathString.html" alt="PFilePathString" shape="rect" coords="163,280,316,304"><area href="classPHTTPSpace_1_1Node.html" alt="PHTTPSpace::Node" shape="rect" coords="163,336,316,360"><area href="classPStringStream.html" alt="PStringStream" shape="rect" coords="163,392,316,416"><area href="classPVXMLTransferResult.html" alt="PVXMLTransferResult" shape="rect" coords="163,448,316,472"><area href="classPXMLRPCServerMethod.html" alt="PXMLRPCServerMethod" shape="rect" coords="163,504,316,528"></map><a href="classPString-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Construction</h2></td></tr><tr><td nowrap align=right valign=top>enum </td><td valign=bottom><a class="el" href="classPString.html#z231_0">ConversionType</a> { <br> <a class="el" href="classPString.html#z231_0s0">Pascal</a>, <a class="el" href="classPString.html#z231_0s1">Basic</a>, <a class="el" href="classPString.html#z231_0s2">Literal</a>, <a class="el" href="classPString.html#z231_0s3">Signed</a>, <br> <a class="el" href="classPString.html#z231_0s4">Unsigned</a>, <a class="el" href="classPString.html#z231_0s5">Decimal</a>, <a class="el" href="classPString.html#z231_0s6">Exponent</a>, <a class="el" href="classPString.html#z231_0s7">Printf</a>, <br> <a class="el" href="classPString.html#z231_0s8">NumConversionTypes</a><br> }</td></tr><tr><td nowrap align=right valign=top>PINLINE </td><td valign=bottom><a class="el" href="classPString.html#z231_1">PString</a> ()</td></tr><tr><td nowrap align=right valign=top>PINLINE </td><td valign=bottom><a class="el" href="classPString.html#z231_2">PString</a> (const PString &str)</td></tr><tr><td nowrap align=right valign=top>PINLINE </td><td valign=bottom><a class="el" href="classPString.html#z231_3">PString</a> (const std::string &str)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_4">PString</a> (const char *cstr)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_5">PString</a> (const WORD *ustr)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_6">PString</a> (const char *cstr, PINDEX len)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_7">PString</a> (const WORD *ustr, PINDEX len)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_8">PString</a> (const <a class="el" href="classPWORDArray.html">PWORDArray</a> &ustr)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_9">PString</a> (char ch)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_10">PString</a> (short n)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_11">PString</a> (unsigned short n)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_12">PString</a> (int n)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_13">PString</a> (unsigned int n)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_14">PString</a> (long n)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_15">PString</a> (unsigned long n)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_16">PString</a> (PInt64 n)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_17">PString</a> (PUInt64 n)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_18">PString</a> (<a class="el" href="classPString.html#z231_0">ConversionType</a> type, const char *str,...)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_19">PString</a> (<a class="el" href="classPString.html#z231_0">ConversionType</a> type, long value, unsigned base=10)</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z231_20">PString</a> (<a class="el" href="classPString.html#z231_0">ConversionType</a> type, double value, unsigned places)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z231_21">operator=</a> (const PString &str)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z231_22">operator=</a> (const char *cstr)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z231_23">operator=</a> (char ch)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z231_24">operator=</a> (short n)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z231_25">operator=</a> (unsigned short n)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z231_26">operator=</a> (int n)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z231_27">operator=</a> (unsigned int n)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z231_28">operator=</a> (long n)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z231_29">operator=</a> (unsigned long n)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z231_30">operator=</a> (PInt64 n)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z231_31">operator=</a> (PUInt64 n)</td></tr><tr><td nowrap align=right valign=top>virtual PString & </td><td valign=bottom><a class="el" href="classPString.html#z231_32">MakeEmpty</a> ()</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z231_33">Empty</a> ()</td></tr><tr><td colspan=2><br><h2>Concatenation operators *</h2></td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z239_0">operator+</a> (const PString &str) const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z239_1">operator+</a> (const char *cstr) const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z239_2">operator+</a> (char ch) const</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z239_3">operator+=</a> (const PString &str)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z239_4">operator+=</a> (const char *cstr)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z239_5">operator+=</a> (char ch)</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z239_6">operator &</a> (const PString &str) const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z239_7">operator &</a> (const char *cstr) const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z239_8">operator &</a> (char ch) const</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z239_9">operator &=</a> (const PString &str)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z239_10">operator &=</a> (const char *cstr)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z239_11">operator &=</a> (char ch)</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z239_12">operator+</a> (const char *cstr, const PString &str)</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z239_13">operator+</a> (char c, const PString &str)</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z239_14">operator &</a> (const char *cstr, const PString &str)</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z239_15">operator &</a> (char ch, const PString &str)</td></tr><tr><td colspan=2><br><h2>Conversion functions</h2></td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z247_0">sprintf</a> (const char *cfmt,...)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z247_1">vsprintf</a> (const PString &fmt, va_list args)</td></tr><tr><td nowrap align=right valign=top>PString & </td><td valign=bottom><a class="el" href="classPString.html#z247_2">vsprintf</a> (const char *cfmt, va_list args)</td></tr><tr><td nowrap align=right valign=top>long </td><td valign=bottom><a class="el" href="classPString.html#z247_3">AsInteger</a> (unsigned base=10) const</td></tr><tr><td nowrap align=right valign=top>DWORD </td><td valign=bottom><a class="el" href="classPString.html#z247_4">AsUnsigned</a> (unsigned base=10) const</td></tr><tr><td nowrap align=right valign=top>PInt64 </td><td valign=bottom><a class="el" href="classPString.html#z247_5">AsInt64</a> (unsigned base=10) const</td></tr><tr><td nowrap align=right valign=top>PUInt64 </td><td valign=bottom><a class="el" href="classPString.html#z247_6">AsUnsigned64</a> (unsigned base=10) const</td></tr><tr><td nowrap align=right valign=top>double </td><td valign=bottom><a class="el" href="classPString.html#z247_7">AsReal</a> () const</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPWORDArray.html">PWORDArray</a> </td><td valign=bottom><a class="el" href="classPString.html#z247_8">AsUCS2</a> () const</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPBYTEArray.html">PBYTEArray</a> </td><td valign=bottom><a class="el" href="classPString.html#z247_9">ToPascal</a> () const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z247_10">ToLiteral</a> () const</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#z247_11">operator const unsigned char *</a> () const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z247_12">psprintf</a> (const char *cfmt,...)</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z247_13">pvsprintf</a> (const char *cfmt, va_list args)</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z247_14">pvsprintf</a> (const PString &fmt, va_list args)</td></tr><tr><td colspan=2><br><h2>Public Types</h2></td></tr><tr><td colspan=2><br><h2>Public Methods</h2></td></tr><tr><td colspan="2"><div class="groupHeader">Overrides from class PObject</div></td></tr><tr><td nowrap align=right valign=top>virtual <a class="el" href="classPObject.html">PObject</a> * </td><td valign=bottom><a class="el" href="classPString.html#z233_0">Clone</a> () const</td></tr><tr><td nowrap align=right valign=top>virtual Comparison </td><td valign=bottom><a class="el" href="classPString.html#z233_1">Compare</a> (const <a class="el" href="classPObject.html">PObject</a> &obj) const</td></tr><tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classPString.html#z233_2">PrintOn</a> (ostream &strm) const</td></tr><tr><td nowrap align=right valign=top>virtual void </td><td valign=bottom><a class="el" href="classPString.html#z233_3">ReadFrom</a> (istream &strm)</td></tr><tr><td nowrap align=right valign=top>virtual PINDEX </td><td valign=bottom><a class="el" href="classPString.html#z233_4">HashFunction</a> () const</td></tr><tr><td colspan="2"><div class="groupHeader">Overrides from class PContainer</div></td></tr><tr><td nowrap align=right valign=top>virtual BOOL </td><td valign=bottom><a class="el" href="classPString.html#z235_0">SetSize</a> (PINDEX newSize)</td></tr><tr><td nowrap align=right valign=top>virtual BOOL </td><td valign=bottom><a class="el" href="classPString.html#z235_1">IsEmpty</a> () const</td></tr><tr><td nowrap align=right valign=top>virtual BOOL </td><td valign=bottom><a class="el" href="classPString.html#z235_2">MakeUnique</a> ()</td></tr><tr><td colspan="2"><div class="groupHeader">Size/Length functions</div></td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPString.html#z237_0">MakeMinimumSize</a> ()</td></tr><tr><td nowrap align=right valign=top>PINLINE PINDEX </td><td valign=bottom><a class="el" href="classPString.html#z237_1">GetLength</a> () const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z237_2">operator!</a> () const</td></tr><tr><td colspan="2"><div class="groupHeader">Comparison operators</div></td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_0">operator *=</a> (const PString &str) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_1">operator==</a> (const <a class="el" href="classPObject.html">PObject</a> &str) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_2">operator!=</a> (const <a class="el" href="classPObject.html">PObject</a> &str) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_3">operator<</a> (const <a class="el" href="classPObject.html">PObject</a> &str) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_4">operator></a> (const <a class="el" href="classPObject.html">PObject</a> &str) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_5">operator<=</a> (const <a class="el" href="classPObject.html">PObject</a> &str) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_6">operator>=</a> (const <a class="el" href="classPObject.html">PObject</a> &str) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_7">operator *=</a> (const char *cstr) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_8">operator==</a> (const char *cstr) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_9">operator!=</a> (const char *cstr) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_10">operator<</a> (const char *cstr) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_11">operator></a> (const char *cstr) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_12">operator<=</a> (const char *cstr) const</td></tr><tr><td nowrap align=right valign=top>bool </td><td valign=bottom><a class="el" href="classPString.html#z241_13">operator>=</a> (const char *cstr) const</td></tr><tr><td nowrap align=right valign=top>Comparison </td><td valign=bottom><a class="el" href="classPString.html#z241_14">NumCompare</a> (const PString &str, PINDEX count=P_MAX_INDEX, PINDEX offset=0) const</td></tr><tr><td nowrap align=right valign=top>Comparison </td><td valign=bottom><a class="el" href="classPString.html#z241_15">NumCompare</a> (const char *cstr, PINDEX count=P_MAX_INDEX, PINDEX offset=0) const</td></tr><tr><td colspan="2"><div class="groupHeader">Search & replace functions</div></td></tr><tr><td nowrap align=right valign=top>PINDEX </td><td valign=bottom><a class="el" href="classPString.html#z243_0">Find</a> (char ch, PINDEX offset=0) const</td></tr><tr><td nowrap align=right valign=top>PINDEX </td><td valign=bottom><a class="el" href="classPString.html#z243_1">Find</a> (const PString &str, PINDEX offset=0) const</td></tr><tr><td nowrap align=right valign=top>PINDEX </td><td valign=bottom><a class="el" href="classPString.html#z243_2">Find</a> (const char *cstr, PINDEX offset=0) const</td></tr><tr><td nowrap align=right valign=top>PINDEX </td><td valign=bottom><a class="el" href="classPString.html#z243_3">FindLast</a> (char ch, PINDEX offset=P_MAX_INDEX) const</td></tr><tr><td nowrap align=right valign=top>PINDEX </td><td valign=bottom><a class="el" href="classPString.html#z243_4">FindLast</a> (const PString &str, PINDEX offset=P_MAX_INDEX) const</td></tr><tr><td nowrap align=right valign=top>PINDEX </td><td valign=bottom><a class="el" href="classPString.html#z243_5">FindLast</a> (const char *cstr, PINDEX offset=P_MAX_INDEX) const</td></tr><tr><td nowrap align=right valign=top>PINDEX </td><td valign=bottom><a class="el" href="classPString.html#z243_6">FindOneOf</a> (const PString &set, PINDEX offset=0) const</td></tr><tr><td nowrap align=right valign=top>PINDEX </td><td valign=bottom><a class="el" href="classPString.html#z243_7">FindOneOf</a> (const char *cset, PINDEX offset=0) const</td></tr><tr><td nowrap align=right valign=top>PINDEX </td><td valign=bottom><a class="el" href="classPString.html#z243_8">FindRegEx</a> (const <a class="el" href="classPRegularExpression.html">PRegularExpression</a> &regex, PINDEX offset=0) const</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPString.html#z243_9">FindRegEx</a> (const <a class="el" href="classPRegularExpression.html">PRegularExpression</a> &regex, PINDEX &pos, PINDEX &len, PINDEX offset=0, PINDEX maxPos=P_MAX_INDEX) const</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPString.html#z243_10">Replace</a> (const PString &target, const PString &subs, BOOL all=FALSE, PINDEX offset=0)</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPString.html#z243_11">Splice</a> (const PString &str, PINDEX pos, PINDEX len=0)</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPString.html#z243_12">Splice</a> (const char *cstr, PINDEX pos, PINDEX len=0)</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPString.html#z243_13">Delete</a> (PINDEX start, PINDEX len)</td></tr><tr><td colspan="2"><div class="groupHeader">Sub-string functions</div></td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z245_0">operator()</a> (PINDEX start, PINDEX end) const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z245_1">Left</a> (PINDEX len) const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z245_2">Right</a> (PINDEX len) const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z245_3">Mid</a> (PINDEX start, PINDEX len=P_MAX_INDEX) const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z245_4">LeftTrim</a> () const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z245_5">RightTrim</a> () const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z245_6">Trim</a> () const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z245_7">ToLower</a> () const</td></tr><tr><td nowrap align=right valign=top>PString </td><td valign=bottom><a class="el" href="classPString.html#z245_8">ToUpper</a> () const</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPStringArray.html">PStringArray</a> </td><td valign=bottom><a class="el" href="classPString.html#z245_9">Tokenise</a> (const PString &separators, BOOL onePerSeparator=TRUE) const</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPStringArray.html">PStringArray</a> </td><td valign=bottom><a class="el" href="classPString.html#z245_10">Tokenise</a> (const char *cseparators, BOOL onePerSeparator=TRUE) const</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPStringArray.html">PStringArray</a> </td><td valign=bottom><a class="el" href="classPString.html#z245_11">Lines</a> () const</td></tr><tr><td colspan=2><br><h2>Protected Methods</h2></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPString.html#b0">InternalFromUCS2</a> (const WORD *ptr, PINDEX len)</td></tr><tr><td nowrap align=right valign=top>virtual Comparison </td><td valign=bottom><a class="el" href="classPString.html#b1">InternalCompare</a> (PINDEX offset, char c) const</td></tr><tr><td nowrap align=right valign=top>virtual Comparison </td><td valign=bottom><a class="el" href="classPString.html#b2">InternalCompare</a> (PINDEX offset, PINDEX length, const char *cstr) const</td></tr><tr><td nowrap align=right valign=top> </td><td valign=bottom><a class="el" href="classPString.html#b3">PString</a> (int dummy, const PString *str)</td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>The character string class. It supports a wealth of additional functions for string processing and conversion. Operators are provided so that strings can virtually be treated as a basic type.<p>An important feature of the string class, which is not present in other container classes, is that when the string contents is changed, that is resized or elements set, the string is "dereferenced", and a duplicate made of its contents. That is this instance of the array is disconnected from all other references to the string data, if any, and a new string array contents created. For example consider the following: \begin{verbatim} PString s1 = "String"; // New array allocated and set to "String" PString s2 = s1; // s2 has pointer to same array as s1 and reference count is 2 for both s1[0] = 's'; // Breaks references into different strings \end{verbatim} at the end s1 is "string" and s2 is "String" both with reference count of 1.<p>The functions that will "break" a reference are <a class="el" href="classPString.html#z235_0">SetSize()</a>#, SetMinSize()#, GetPointer()#, SetAt()# and operator[]#.<p>Note that the array is a '\0' terminated string as in C strings. Thus the memory allocated, and the length of the string may be different values.<p>Also note that the PString is inherently an 8 bit string. The character set is not defined for most operations and it may be any 8 bit character set. However when conversions are being made to or from 2 byte formats then the PString is assumed to be the UTF-8 format. The 2 byte format is nominally UCS-2 (aka BMP string) and while it is not exactly the same as UNICODE they are compatible enough for them to be treated the same for most real world usage. <p><hr><h2>Member Enumeration Documentation</h2><a name="z231_0" doxytag="PString::ConversionType"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> enum PString::ConversionType </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p><dl compact><dt><b>Enumeration values: </b></dt><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em><a name="z231_0s0" doxytag="Pascal"></a><em>Pascal</em></em> </td><td></td></tr><tr><td valign=top><em><a name="z231_0s1" doxytag="Basic"></a><em>Basic</em></em> </td><td></td></tr><tr><td valign=top><em><a name="z231_0s2" doxytag="Literal"></a><em>Literal</em></em> </td><td></td></tr><tr><td valign=top><em><a name="z231_0s3" doxytag="Signed"></a><em>Signed</em></em> </td><td></td></tr><tr><td valign=top><em><a name="z231_0s4" doxytag="Unsigned"></a><em>Unsigned</em></em> </td><td></td></tr><tr><td valign=top><em><a name="z231_0s5" doxytag="Decimal"></a><em>Decimal</em></em> </td><td></td></tr><tr><td valign=top><em><a name="z231_0s6" doxytag="Exponent"></a><em>Exponent</em></em> </td><td></td></tr><tr><td valign=top><em><a name="z231_0s7" doxytag="Printf"></a><em>Printf</em></em> </td><td></td></tr><tr><td valign=top><em><a name="z231_0s8" doxytag="NumConversionTypes"></a><em>NumConversionTypes</em></em> </td><td></td></tr></table></dl> </td> </tr></table><hr><h2>Constructor & Destructor Documentation</h2><a name="z231_1" doxytag="PString::PString"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> PINLINE PString::PString </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Construct an empty string. This will have one character in it which is the '\0' character. </td> </tr></table><a name="z231_2" doxytag="PString::PString"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> PINLINE PString::PString </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const PString & </td> <td class="mdname1" valign="top" nowrap> <em>str</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -