Next: Searching Strings, Previous: Alphabetic Case in Strings, Up: Strings
Returns a newly allocated string made from the concatenation of the given strings. With no arguments,
string-append
returns the empty string (""
).(string-append) => "" (string-append "*" "ace" "*") => "*ace*" (string-append "" "" "") => "" (eq? str (string-append str)) => #f ; newly allocated
Returns a newly allocated string formed from the characters of string beginning with index start (inclusive) and ending with end (exclusive).
(substring "" 0 0) => "" (substring "arduous" 2 5) => "duo" (substring "arduous" 2 8) error--> 8 not in correct range (define (string-copy s) (substring s 0 (string-length s)))
Returns a newly allocated copy of the initial substring of string, up to but excluding end. It could have been defined by:
(define (string-head string end) (substring string 0 end))
Returns a newly allocated copy of the final substring of string, starting at index start and going to the end of string. It could have been defined by:
(define (string-tail string start) (substring string start (string-length string))) (string-tail "uncommon" 2) => "common"
These procedures return a newly allocated string created by padding string out to length k, using char. If char is not given, it defaults to
#\space
. If k is less than the length of string, the resulting string is a truncated form of string.string-pad-left
adds padding characters or truncates from the beginning of the string (lowest indices), whilestring-pad-right
does so at the end of the string (highest indices).(string-pad-left "hello" 4) => "ello" (string-pad-left "hello" 8) => " hello" (string-pad-left "hello" 8 #\*) => "***hello" (string-pad-right "hello" 4) => "hell" (string-pad-right "hello" 8) => "hello "
Returns a newly allocated string created by removing all characters that are not in char-set from: (
string-trim
) both ends of string; (string-trim-left
) the beginning of string; or (string-trim-right
) the end of string. Char-set defaults tochar-set:not-whitespace
.(string-trim " in the end ") => "in the end" (string-trim " ") => "" (string-trim "100th" char-set:numeric) => "100" (string-trim-left "-.-+-=-" (char-set #\+)) => "+-=-" (string-trim "but (+ x y) is" (char-set #\( #\))) => "(+ x y)"