

                                                        Chapter 7
                                      STRINGS & STRING PROCEDURES

PASCAL STRINGS
_________________________________________________________________

According to the Pascal definition, a string is  ================
simply an array of 2 of more elements of type      STRARRAY.PAS
char, and is contained in an array defined in a  ================
var declaration as a fixed length.  Examine the
example program named STRARRAY.PAS.  Notice that
the strings are defined in the type declaration even though they
could have been defined in the var part of the declaration.  This
is to begin getting you used to seeing the type declaration.  The
strings defined here are nothing more than arrays with char type
variables.


A STRING IS AN ARRAY OF CHAR
_________________________________________________________________

The interesting part of this file is the executable program. 
Notice that when the variable First_Name is assigned a value, the
value assigned to it must contain exactly 10 characters or the
compiler will generate an error.  If you edit out a blank, you will
get an invalid type error.  Pascal is neat in allowing you to write
out the values in the string array without specifically writing
each character in a loop as can be seen in the Writeln statement. 
To combine the data, called concatenation, requires the use of the
rather extensive looping and subscripting seen in the last part of
the program.  It would be even messier if we were to consider
variable length fields which is nearly always the case in a real
program.

Two things should be observed in this program.  First, notice the
fact that the string operations are truly array operations and will
follow all of the characteristics discussed in the last chapter. 
Secondly, it is very obvious that Pascal is rather weak when it
comes to its handling of text type data.  Pascal will handle text
data, even though it may be difficult to do so using the standard
description of Pascal as illustrated in this program.  We will see
next that TURBO Pascal really shines when it is desired to
manipulate text.  Compile and run STRARRAY.PAS and observe the
output.


THE TURBO PASCAL STRING TYPE
_________________________________________________________________

Examine the example program STRINGS.PAS.  You     ===============
will see a much more concise program that           STRINGS.PAS
actually does more.  TURBO Pascal has, as an      ===============
extension to standard Pascal, the string type of
variable.  It is used as shown, and the number

                                                         Page 7-1

                        Chapter 7 - Strings and String Procedures

in the square brackets in the var declaration is the maximum length
of the string.  In actual use in the program, the variable can be
used as any length from zero characters up to the maximum given in
the declaration.  The variable First_Name, for example, actually
has 11 locations of storage for its data.  The current length is
stored in First_Name[0] and the data is stored in First_Name[1]
through First_Name[10].  All data are stored as byte variables,
including the size, so the length is limited to a maximum of 255
characters.


STRINGS HAVE VARIABLE LENGTHS
_________________________________________________________________

Now look at the program itself.  Even though the variable
First_Name is defined as 10 characters long, it is perfectly legal
to assign it a 4 character constant, with First_Name[0]
automatically set to 4 by the system and the last six characters
undefined and unneeded.  When the program is run, the three
variables are printed out all squeezed together indicating that the
variables are indeed shorter than their full size as defined in the
var declaration.  

Using the string type is even easier when you desire to combine
several fields into one as can be seen in the assignment to
Full_Name.  The concatenation operator is the plus sign and is used
to combine strings and individual characters as indicated in line
14.  Notice that there are even two blanks, in the form of constant
fields, inserted between the component parts of the full name. 
When it is written out, the full name is formatted neatly and is
easy to read.  Compile and run STRINGS.PAS and observe the output.


WHAT'S IN A STRING TYPE VARIABLE?
_________________________________________________________________

The next example program named WHATSTRG.PAS, is  ================
intended to show you exactly what is in a string   WHATSTRG.PAS
variable.  This program is identical to the last ================
program except for some added statements at the
end.  Notice the assignment to Total.  The
function Length is available in TURBO Pascal to return the current
length of any string type variable.  It returns a byte type
variable with the value contained in the [0] position of the
variable.  We print out the number of characters in the string at
this point, and then print out each character on a line by itself
to illustrate that the TURBO Pascal string type variable is simply
an array variable.

The TURBO Pascal reference manual has a full description of several
more procedures and functions for use with strings which are
available in TURBO Pascal only.  Refer to your TURBO Pascal
reference manual for complete details.  The use of these should be
clear after you grasp the material covered here.

                                                         Page 7-2

                        Chapter 7 - Strings and String Procedures


PROGRAMMING EXERCISE
_________________________________________________________________

1.   Write a program in which you store your first, middle, and
     last names as variables, then display them one to a line. 
     Concatenate the names with blanks between them and display
     your full name as a single variable.















































                                                         Page 7-3
