Strings
There are two ways to represent character strings in C++.
- Arrays of characters, terminated by a "zero" value, are commonly used.
These are referred to as "c-strings" to distinguish them from the
string
type that was introduced in the C++ Standard Template Library.
- The
string
class is a relatively late addition to C++ that
represents strings as objects. This class is generally easier to use than
c-strings, but you usually can not avoid some use of c-strings.
Characters
Individual characters (type char
) are stored in single bytes.
A character literal is surrounded by single quotes (eg, 'a', ')', ...).
Double quotes are used to represent a c-string literal. Eg, "a" is a
c-string consisting of one character followed by a zero.
Some characters need to be preceded by
a special escape character (the backslash), because they have some
meaning to the compiler.
For example, '\'' is a single quote, '\\' is a single backslash,
'\n' is the newline character, and there are others.
Arrays of Characters terminated with "zero"
C-strings are stored as characters in an array. Following
the characters there is a character with
code zero. You can write this as either 0 or '\0'. The
name for this ASCII character is NUL, but that should not
be confused with the special pointer value NULL (which should
not be used for this purpose).
Quoted Strings
A double-quoted string of characters is a common way to write an array of
characters. The string "Hello"
represents and array of
six (not 5) characters. The last character is the terminating
zero code. Example,
char greeting[] = "Hello";
is the same as
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
Using a quoted string as an array
A quoted string really represents an array, so it can even be subscripted. For example,
for (int i=0; i<5; i++) {
cout << "Hello"[i];
}
Include files
If you are using the c-string and character functions, you must have
#include <cstring>
#include <cctype>
|
or for old compilers |
#include <string.h>
#include <ctype.h>
|