In BR, a substring of a string is a subset of the symbols in a string, where the order of the elements is preserved.
Therefore, "ball" is a substring of "snowball", but "bow" is not. Even though all the letters in "bow" are also contained in "snowball", they are not in the same order.
In order to extract a substring from its parent string, we must use a start and stop subscripts. The syntax
denotes "the substring of string parent$ starting at character start and ending at character end"
Below is an example of how subscripts can be used to extract substrings from strings:
00010 dim a$*255, b$*255 00020 let a$ = "from this long string, choose these words" 00030 let b$ = a$(24:41) 00040 print b$
The output of the above example will be:
choose these words
A BR String may be modified using its subscripts. For example, A$(4:6) uses the substring of A$ beginning with position 4 up to and including position 6; the numbers inside the parentheses could be replaced by any numeric expression. In the following example, line 40 sets element 3 of array Z$ to "XXC":
00010 LET Z$(3) = "ABC" 00020 LET A = 1 00030 LET B = 2 00040 LET Z$(3)(A:B) = "XX"
In the next example, line 40 replaces "BC" with "23" and assigns the value "A23D" to X$:
00030 LET X$ = "ABCD" 00040 LET X$(2:3) = "23"
Note that you the number of characters being replaced does not have to match the number of characters they are being replaced with. Consider the following example:
00010 dim a$*255 00020 let a$ = "beginning end" 00030 let a$(10:10) = " middle " ! here we are replacing one character (a space) with 6 characters (" middle ") 00040 print a$
The result of the example above is
beginning middle end
To prepend string1$ to string2$ means to join string1$ to the beginning of string2$.
To append to the beginning of a string you should use
X$(0:0)="append this to front"
X$(1:0)="append this to front"
00010 dim result$*255 ! dimension long enough to fit the result 00020 let result$ = " and this is the end" 00030 let string_to_prepend$ = "this is the front" 00040 let result$(0:0) = string_to_prepend$ 00050 print result$
The output of the program above will be:
this is the front and this is the end
To append string2$ to string1$ means to join string2$ to the end of string1$.
To append to the end of a String you should (for maximum speed of code execution) use
X$(inf:0)="append this to end"
X$(inf:inf)="append this to the end"
Here, inf denotes infinity.
So X$(inf:inf) means "the substring of X$ starting at infinity". This is particularly useful when you don't know how long your string is and do not want to calculate its length.
see also: prepend