Pointers and Text Strings

Historically, text strings in C have been implemented as arrays of characters, with the last byte in the string being a zero, or the null character '\0'. Most C implementations come with a standard library of functions for manipulating strings. Many of the more commonly used functions expect the strings to be null terminated strings of characters. To use these functions requires the inclusion of the standard C header file "string.h".

A statically declared, initialized string would look similar to the following:

static const char *myFormat = "Total Amount Due: %d";

The variable myFormat can be viewed as an array of 21 characters. There is an implied null character ('\0') tacked on to the end of the string after the 'd' as the 21st item in the array. You can also initialize the individual characters of the array as follows:

static const char myFlower[] = { 'P', 'e', 't', 'u', 'n', 'i', 'a', '\0' };

An initialized array of strings would typically be done as follows:

static const char *myColors[] = {
   "Red", "Orange", "Yellow", "Green", "Blue", "Violet" };

The initilization of an especially long string can be split across lines of source code as follows.

static char *longString = "Hello. My name is Rudolph and I work as a reindeer "
  "around Christmas time up at the North Pole.  My boss is a really swell guy."
  " He likes to give everybody gifts.";

The library functions that are used with strings are discussed in a later chapter.

发表回复