Chapter 7 - Strings
 
One thing the ZX81 can do that pocket calculators cannot is deal with text.  Type
 
 
PRINT
 "HI THERE. I AM YOUR ZX81."       (" is shifted P.)
 
    The chilling greeting inside the quotes is called a string
 (meaning a string of characters), & can contain 
any characters you like except the string quote,". (But you can use the so-called quote image, "" (shifted 
Q), & this will be printed as " by a 
PRINT
 statement.)
 
    A common typing error with strings is to miss out one of the quotes - this will give you the   marker.
 
    If you are printing numbers out, you can use these strings to explain what the numbers mean. For 
instance, type
 
 
LET
 EGGS=61
 
& then
 
 
PRINT
 "THE PRICE OF EGGS IS ";EGGS;" NEW PENCE A DOZEN."
 
(Don't worry about this going over the end of the line.)
 
    This statement displays three things (
PRINT
 items), namely the string "THE PRICE OF EGGS IS ", the 
number 61 (the value of the variable EGGS), & then the string " NEW PENCE A DOZEN." In fact you can 
PRINT any number of items you like, & any mixture of strings & numbers (or expressions), note how the 
spaces in a string are just as much part of it as the letters. They are not ignored even at the end.
 
    There are lots of things you can do with strings.
 
1. You can assign them to variables. However, the name of the variable must be special to show that its 
value is a string & not a number: it must be a single letter followed by $ (shifted U). For instance, type
 
 
LET
 A$="DOUBLE GLOUCESTER"
 
&
 
 
PRINT
 A$
 
2. You can add them together. This is often called concatenation, meaning 'chaining together', & that is 
exactly what it does. Try
 
 
PRINT
 "GAMMO" + "N RASHERS"
 
    You cannot subtract, multiply or divide strings, or raise them to powers.
 
3. You can apply some functions to strings to get numbers, & vice versa.
 
 
STR
$ This is applied to a number, & the result is what would appear on the screen if the number were 
displayed by a 
PRINT
 statement. For instance 
STR$
 3.5 = "3.5".
 
4. Just as for numbers, you can combine these to make string expressions, like
 
 
AL
 (
STR$
 
LEN
 "123456"+"-4")
 
LEN
This is applied to a string, & the result is its length. For instane 
LEN
 "CHEESE" = 6.
VAL
This applied to a string, & the result is what that string gives when evaluated as an arithmetic 
expression. For instance (if A = 9), 
VAL 
"1/2+
SQR
A" = 3.5. If the string to which 
VAL
 is applied 
contains variables, then two rules must be obeyed.
(i) If the 
VAL
 function is part of a larger expression, it must be the first item; e.g. 10 
LET
 X = 7+
VAL
 
"Y" must be changed to 10 
LET
 X = 
VAL
 "Y" +7.
(ii)
VAL
 can only appear in the first coordinate of a 
PRINT AT
, 
PLOT
 or 
UNPLOT
 statement (see 
Chapter 17 and 18) e.g. 10 
PLOT
 5, 
VAL
 "X" must be changed to
 
        10 
LET
 Y = 
VAL
 "X"
 
        15 
PLOT
 5, Y