Apropos

write-to-string, prin1-to-string, princ-to-stringFunction

    Syntax
    write-to-string object &key array base case circle escape gensym
    length level lines miser-width pprint-dispatch
    pretty radix readably right-margin
    string

    prin1-to-string object string

    princ-to-string object string

    Arguments and Values

    object — an object.

    array — a generalized boolean.

    base — a radix.

    case — a symbol of type (member :upcase :downcase :capitalize).

    circle — a generalized boolean.

    escape — a generalized boolean.

    gensym — a generalized boolean.

    length — a non-negative integer, or nil.

    level — a non-negative integer, or nil.

    lines — a non-negative integer, or nil.

    miser-width — a non-negative integer, or nil.

    pprint-dispatch — a pprint dispatch table.

    pretty — a generalized boolean.

    radix — a generalized boolean.

    readably — a generalized boolean.

    right-margin — a non-negative integer, or nil.

    string — a string.

    Description

    write-to-string, prin1-to-string, and princ-to-string are used to create a string consisting of the printed representation of object. Object is effectively printed as if by write, prin1, or princ, respectively, and the characters that would be output are made into a string.

    write-to-string is the general output function. It has the ability to specify all the parameters applicable to the printing of object.

    prin1-to-string acts like write-to-string with :escape t, that is, escape characters are written where appropriate.

    princ-to-string acts like write-to-string with :escape nil :readably nil. Thus no escape characters are written.

    All other keywords that would be specified to write-to-string are default values when prin1-to-string or princ-to-string is invoked.

    The meanings and defaults for the keyword arguments to write-to-string are the same as those for write.

    Examples
    (prin1-to-string "abc")  "\"abc\"" 
    (princ-to-string "abc")  "abc"
    Affected By

    *print-escape*, *print-radix*, *print-base*, *print-circle*, *print-pretty*, *print-level*, *print-length*, *print-case*, *print-gensym*, *print-array*, *read-default-float-format*.

    See Also

    write

    Notes
     (write-to-string object {key argument}*) 
     (with-output-to-string (#1=#:string-stream) 
         (write object :stream #1# {key argument}*)) 
    
     (princ-to-string object) 
     (with-output-to-string (string-stream) 
         (princ object string-stream)) 
    
     (prin1-to-string object) 
     (with-output-to-string (string-stream) 
         (prin1 object string-stream))