-<html lang="en">
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!-- This is the developer's manual for Aspell.
+
+Copyright © 2002, 2003, 2004, 2006 Kevin Atkinson.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.1 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A
+copy of the license is included in the section entitled "GNU Free
+Documentation License". -->
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
-<title>Strings - Aspell Developer's Manual</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<meta name="description" content="Aspell spell checker developer's manual.">
-<meta name="generator" content="makeinfo 4.8">
-<link title="Top" rel="start" href="index.html#Top">
-<link rel="prev" href="Source-Code-Layout.html#Source-Code-Layout" title="Source Code Layout">
-<link rel="next" href="Smart-Pointers.html#Smart-Pointers" title="Smart Pointers">
-<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
+<title>Aspell Developer’s Manual: Strings</title>
+
+<meta name="description" content="Aspell spell checker developer’s manual.">
+<meta name="keywords" content="Aspell Developer’s Manual: Strings">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="index.html#Top" rel="start" title="Top">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="index.html#Top" rel="up" title="Top">
+<link href="Smart-Pointers.html#Smart-Pointers" rel="next" title="Smart Pointers">
+<link href="Source-Code-Layout.html#Source-Code-Layout" rel="prev" title="Source Code Layout">
+<style type="text/css">
<!--
-This is the developer's manual for Aspell.
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+table:not([class]), table:not([class]) th, table:not([class]) td {
+ padding: 2px 0.3em 2px 0.3em;
+ border: thin solid #D0D0D0;
+ border-collapse: collapse;
+}
-Copyright (C) 2002, 2003, 2004, 2006 Kevin Atkinson.
+-->
+</style>
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.1 or any later version published by the Free Software
- Foundation; with no Invariant Sections, no Front-Cover Texts and
- no Back-Cover Texts. A copy of the license is included in the
- section entitled "GNU Free Documentation License".
- -->
-<meta http-equiv="Content-Style-Type" content="text/css">
-<style type="text/css"><!--
- pre.display { font-family:inherit }
- pre.format { font-family:inherit }
- pre.smalldisplay { font-family:inherit; font-size:smaller }
- pre.smallformat { font-family:inherit; font-size:smaller }
- pre.smallexample { font-size:smaller }
- pre.smalllisp { font-size:smaller }
- span.sc { font-variant:small-caps }
- span.roman { font-family:serif; font-weight:normal; }
- span.sansserif { font-family:sans-serif; font-weight:normal; }
---></style>
+<meta name=viewport content="width=device-width, initial-scale=1">
</head>
-<body>
-<div class="node">
-<p>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Strings"></a>
-Next: <a rel="next" accesskey="n" href="Smart-Pointers.html#Smart-Pointers">Smart Pointers</a>,
-Previous: <a rel="previous" accesskey="p" href="Source-Code-Layout.html#Source-Code-Layout">Source Code Layout</a>,
-Up: <a rel="up" accesskey="u" href="index.html#Top">Top</a>
-<hr>
+<div class="header">
+<p>
+Next: <a href="Smart-Pointers.html#Smart-Pointers" accesskey="n" rel="next">Smart Pointers</a>, Previous: <a href="Source-Code-Layout.html#Source-Code-Layout" accesskey="p" rel="prev">Source Code Layout</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>
-
+<hr>
+<a name="Strings-1"></a>
<h2 class="chapter">7 Strings</h2>
+<a name="String"></a>
<h3 class="section">7.1 String</h3>
<p>The <code>String</code> class provided the same functionality of the C++
string except for fewer constructors. It also inherits <code>OStream</code>
so that you can write to it with the <code><<</code> operator. It is
defined in <code>string.hpp</code>.
-
+</p>
+<a name="ParmString"></a>
<h3 class="section">7.2 ParmString</h3>
<p>ParmString is a special string class that is designed to be used as a
<code>String</code> class to be passed in. It will automatically convert to
a <code>const char *</code>. The string can also be accessed via the
<code>str</code> method. Usage example:
-<pre class="verbatim">
-void foo(ParmString s1, ParmString s2) {
+</p><pre class="verbatim">void foo(ParmString s1, ParmString s2) {
const char * str0 = s1;
unsigned int size0 = s2.size()
- if (s1 == s2 || s2 == "bar") {
+ if (s1 == s2 || s2 == "bar") {
...
}
}
...
-String s1 = "...";
+String s1 = "...";
foo(s1);
-const char * s2 = "...";
+const char * s2 = "...";
foo(s2);
</pre>
-
- <p>This class should be used when a string is being passed in as a
+<p>This class should be used when a string is being passed in as a
parameter. It is faster than using <code>const String &</code> (as that
will create an unnecessary temporary when a <code>const char *</code> is
passed in), and is less annoying than using <code>const char *</code> (as it
-doesn't require the <code>c_str()</code> method to be used when a
+doesn’t require the <code>c_str()</code> method to be used when a
<code>String</code> is passed in).
-
+</p>
+<a name="CharVector"></a>
<h3 class="section">7.3 CharVector</h3>
<p>A character vector is basically a <code>Vector<char></code> but it has a few
defined in <code>char_vector.hpp</code>. Use it when ever you need a string
which is guaranteed to be in a continuous block of memory which you
can write to.
+</p>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Smart-Pointers.html#Smart-Pointers" accesskey="n" rel="next">Smart Pointers</a>, Previous: <a href="Source-Code-Layout.html#Source-Code-Layout" accesskey="p" rel="prev">Source Code Layout</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
+</div>
+
- </body></html>
+</body>
+</html>