string-upcase, string-downcase, string-capitalize, nstring-upcase, nstring-downcase, nstring-capitalize
string-upcase string &key start end → cased-string
string-downcase string &key start end → cased-string
string-capitalize string &key start end → cased-string
nstring-upcase string &key start end → string
nstring-downcase string &key start end → string
nstring-capitalize string &key start end → string
string—a string designator. For nstring-upcase, nstring-downcase, and nstring-capitalize, the string designator must be a string.
start, end—bounding index designators of string. The defaults for start and end are 0 and nil, respectively.
18.3.0 13cased-string—a string.
string-upcase, string-downcase, string-capitalize, nstring-upcase, nstring-downcase, nstring-capitalize change the case of the subsequence of string bounded by start and end as follows:
18.3.0 6string-upcase returns a string just like string with all lowercase characters replaced by the corresponding uppercase characters. More precisely, each character of the result string is produced by applying the function char-upcase to the corresponding character of string.
18.3.0 7string-downcase is like string-upcase except that all uppercase characters are replaced by the corresponding lowercase characters (using char-downcase).
18.3.0 10string-capitalize produces a copy of string such that, for every word in the copy, the first character of the “word,” if it has case, is uppercase and any other characters with case in the word are lowercase. For the purposes of string-capitalize, a “word” is defined to be a Rewritten on advice of Barmar, with confirmation from Quinquevirate.
consecutive subsequence consisting of case-modifiable characters or digits,consecutive subsequence consisting of alphanumeric characters, delimited at each end either by a non-alphanumeric character or by an end of the string.
18.3.0 12
Barrett wondered if these really had to modify the string. CLtL p304 says yes. -kmp 13-Feb-92nstring-upcase, nstring-downcase, and nstring-capitalize are identical to string-upcase, string-downcase, and string-capitalize respectively except that they modify string.
Barrett: Duplication \param{start} marks the beginning position of the substring. \param{end} marks the position following the last element of the substring.
18.3.0 9For string-upcase, string-downcase, and string-capitalize, string is not modified. However, if no characters in string require conversion, the result may be either string or a copy of it, at the implementation's discretion.
Implied by use of "string designator". \issue{STRING-COERCION:MAKE-CONSISTENT} \funref{string-upcase}, \funref{string-downcase}, and \funref{string-capitalize} perform coercion identical to the action of \funref{string}. \endissue{STRING-COERCION:MAKE-CONSISTENT}
(string-upcase "abcde") → "ABCDE" (string-upcase "Dr. Livingston, I presume?") → "DR. LIVINGSTON, I PRESUME?" (string-upcase "Dr. Livingston, I presume?" :start 6 :end 10) → "Dr. LiVINGston, I presume?" (string-downcase "Dr. Livingston, I presume?") → "dr. livingston, i presume?" (string-capitalize "elm 13c arthur;fig don't") → "Elm 13c Arthur;Fig Don'T" (string-capitalize " hello ") → " Hello " (string-capitalize "occlUDeD cASEmenTs FOreSTAll iNADVertent DEFenestraTION") → "Occluded Casements Forestall Inadvertent Defenestration" (string-capitalize 'kludgy-hash-search) → "Kludgy-Hash-Search" (string-capitalize "DON'T!") → "Don'T!" ;not "Don't!" (string-capitalize "pipe 13a, foo16c") → "Pipe 13a, Foo16c" (setq str (copy-seq "0123ABCD890a")) → "0123ABCD890a" (nstring-downcase str :start 5 :end 7) → "0123AbcD890a" str → "0123AbcD890a"
nstring-upcase, nstring-downcase, and nstring-capitalize modify string as appropriate rather than constructing a new string.
None.
None.