### 6.11 Byte Vectors

MIT/GNU Scheme implements strings as packed vectors of 8-bit ISO-8859-1 bytes. Most of the string operations, such as `string-ref`, coerce these 8-bit codes into character objects. However, some lower-level operations are made available for use.

procedure: vector-8b-ref string k

  Returns character k of string as an ISO-8859-1 code. K must be a valid index of string.

      (vector-8b-ref "abcde" 2)               ⇒  99 ;c

procedure: vector-8b-set! string k code

  Stores code in element k of string and returns an unspecified value. K must be a valid index of string, and code must be a valid ISO-8859-1 code.

procedure: vector-8b-fill! string start end code

  Stores code in elements start (inclusive) to end (exclusive) of string and returns an unspecified value. Code must be a valid ISO-8859-1 code.

procedure: vector-8b-find-next-char string start end code
procedure: vector-8b-find-next-char-ci string start end code

  Returns the index of the first occurrence of code in the given substring; returns `#f` if code does not appear. The index returned is relative to the entire string, not just the substring. Code must be a valid ISO-8859-1 code.

  `vector-8b-find-next-char-ci` doesn’t distinguish uppercase and lowercase letters.

procedure: vector-8b-find-previous-char string start end code
procedure: vector-8b-find-previous-char-ci string start end code

  Returns the index of the last occurrence of code in the given substring; returns `#f` if code does not appear. The index returned is relative to the entire string, not just the substring. Code must be a valid ISO-8859-1 code.

  `vector-8b-find-previous-char-ci` doesn’t distinguish uppercase and lowercase letters.