string-copy! - copy from a string into another string

LIBRARY

(import (scheme base))              ;R7RS

SYNOPSIS

(string-copy! to at from)
(string-copy! to at from start)
(string-copy! to at from start end)

DESCRIPTION

Copies the characters of the string from between start and end to the string to, starting at at.

The order in which characters are copied is unspecified, except that if the source and destination overlap, copying takes place as if the source is first copied into a temporary string and then into the destination. This can be achieved without allocating storage by making sure to copy in the correct direction in such circumstances.

RETURN VALUES

Returns an unspecified value.

EXAMPLES

(define a "12345")
(define b (string-copy "abcde"))
(string-copy! b 1 a 0 2)
b  =>  "a12de"

COMPATIBILITY

This procedure is unique to R7RS.

ERRORS

It is an error if at is less than zero or greater than the length of to. It is also an error if (- (string-length to) at) is less than (- end start). It is also an error if the wrong number arguments was passed or an argument was outside its domain. Implementations may signal an error, extend the procedure's domain of definition to include such arguments, or fail catastrophically.

SEE ALSO

string-set!(3scm)

STANDARDS

R7RS

HISTORY

This procedure first appeared in R7RS. In R2RS there were the procedures substring-move-right! and substring-move-left! that had the same effect.

AUTHORS

This page is part of the scheme-manpages project. It includes materials from the RnRS documents. More information can be found at https://github.com/schemedoc/manpages/.


Markup created by unroff 1.0sc,    March 04, 2023.