home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
- # include "strings.h"
-
- function indexS{(s: String; i: Nat1):Char};
- {
- * Returns s[i]
- *
- * precondition:
- * i <= lengthS(s)
- }
- var j: 2..maxint; chunk: stringtail;
- begin
- with s^ do
- if i <= slength then indexS := HEAD[i]
- else begin
- chunk := TAIL;
- for j := 2 to (i-1) div slength do chunk := chunk^.REST;
- indexS := chunk^.MORE[ (i-1) mod slength + 1 ]
- end
- end{ -- indexS};
-