File: Strings.html

package info (click to toggle)
aspell 0.60.8.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 15,336 kB
  • sloc: cpp: 24,378; sh: 12,340; perl: 1,924; ansic: 1,661; makefile: 852; sed: 16
file content (133 lines) | stat: -rw-r--r-- 5,771 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<!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>Aspell Developer&rsquo;s Manual: Strings</title>

<meta name="description" content="Aspell spell checker developer&rsquo;s manual.">
<meta name="keywords" content="Aspell Developer&rsquo;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">
<!--
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;
}

-->
</style>

<meta name=viewport content="width=device-width, initial-scale=1">
</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Strings"></a>
<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> &nbsp; [<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>&lt;&lt;</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
parameter for a function that is expecting a string.  It is defined in
<code>parm_string.hpp</code>.  It will allow either a <code>const char *</code> or
<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:
</p><pre class="verbatim">void foo(ParmString s1, ParmString s2) {
   const char * str0 = s1;
   unsigned int size0 = s2.size()
   if (s1 == s2 || s2 == &quot;bar&quot;) {
     ...
   }
}
...
String s1 = &quot;...&quot;;
foo(s1);
const char * s2 = &quot;...&quot;;
foo(s2);
</pre>
<p>This class should be used when a string is being passed in as a
parameter.  It is faster than using <code>const String &amp;</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&rsquo;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&lt;char&gt;</code> but it has a few
additional methods for dealing with strings which <code>Vector</code> does
not provide.  It, like <code>String</code>, is also inherits <code>OStream</code>
so that you can write to it with the <code>&lt;&lt;</code> operator.  It is
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> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>]</p>
</div>



</body>
</html>