
                CHAPTER 7 - Strings and string procedures


                              PASCAL STRINGS

             According to the Pascal definition, a string is  simply
        an  array  of  2 of more characters of  type  char,  and  is
        contained  in  an array defined in a var  declaration  as  a
        fixed length.  Look at the example program STRARRAY.  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 A 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.  Try editing out a blank and 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.  This concerns the standard description
        of Pascal, we will see next that TURBO Pascal really  shines
        here.

             Compile and run STRARRAY and observe the output.

                       THE TURBO PASCAL STRING TYPE

             Look  at the example program STRINGS.  You will  see  a
        much  more concise program that 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  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


                                 Page 43









                CHAPTER 7 - Strings and string procedures


        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  therefore
        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 four 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.  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 and observe the output.

                    WHAT IS IN A STRING TYPE VARIABLE?

             The next example program named WHATSTRG, is intended to
        show you exactly what is in a string 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
        available  in TURBO Pascal only.  Refer to your TURBO Pascal
        version 3.0 reference manual in chapter 9, beginning on page
        67,  or if you are using TURBO Pascal version 4.0, you  will
        find the string functions throughout chapter 27.  The use of
        these  should be clear after you grasp the material  covered
        here.



                                 Page 44









                CHAPTER 7 - Strings and string procedures


                           PROGRAMMING EXERCISES

        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 45
