EasyManua.ls Logo

Sinclair ZX81 - Chapter 21 - Substrings

Sinclair ZX81
92 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Chapter 21 - Substrings
Given a string, a substring of it consists of some consecutive characters from it, taken in sequence. Thus
"STRING" is a substring of "BIGGER STRING", but "B STRING" & "BIG REG" are not.
There is a notation called slicing
for describing substrings, & this can be applied to arbitrary string
expressions. The general form is
string expression (start
TO
finish)
so that, for instance,
"ABCDEF" (2
TO
5) = "BCDE"
If you omit the start, then 1 is assumed; if you omit the finish then the length of the string is assumed.
Thus
"ABCDEF" (
TO
5) = "ABCDEF" (1
TO
5) = "ABCDE"
"ABCDEF" (2
TO
) = "ABCDEF" (2
TO
6) = "BCDEF"
&
"ABCDEF" (
TO
) = "ABCDEF" (1
TO
6) = "ABCDEF"
(you can also write this last one as "ABCDEF" (), for what it's worth.)
A slightly different for misses out the
TO
& just has one number:
"ABCDEF" (3) = "ABCDEF" (3
TO
3) = "C"
Although normally both start & finish must refer to existing parts of the string, this rule is overridden by
one other: if the start is more than the finish, then the result is the empty string. So
"ABCDEF" (5
TO
7)
gives error 3 (subscript error) because, the string only contains 6 characters, & 7 is too many, but
"ABCDEF" (8
TO
7) = ""
&
"ABCDEF" (1
TO
0) = ""
The start & finish must not be negative, or you get error B.
This next program makes B$ equal to A$, but imitting any trailing spaces.
10
INPUT
A$
20
FOR
N=
LEN
A$
TO
1
STEP
-1
30
IF
A$(N)<>""
THEN GOTO
50
40
NEXT
N
50
LET
B$=A$(
TO
N)
60
PRINT
"
""
";A$;"
""
","
""
";B$;"
""
"
70
GOTO
10
Note how if A$ is entirely spaces, then in line 50 we have N = 0 & A$(
TO
N) = A$(1
TO
0) = "".
For string variables, we can not only extract substrings, but also assign to them. For instance type
LET
A$="LOR LOVE A DUCK"
& then
LET
A$(5 TO 8)="******"
&
PRINT
A$
Notice how since the substring A$(5
TO
8) is only 4 characters long, only the first four stars have been
used. This is a characteristic of assigning to substrings: the substring has to be exactly the same length

Other manuals for Sinclair ZX81

Related product manuals