有没有办法在Racket中将字符串中的所有字符转换为小写?
我能想到的唯一方法是将 char-downcase 但它不适用于字符串
我正在使用初学者语言,所以我无法使用某些功能
在实践中,您将使用以下string-downcase
过程:
(string-downcase "ABCDE")
=> "abcde"
但是你正在使用初学者的语言,所以这里是解决它的一般思路 - 我会给你一些提示,如果你尝试自己解决问题会更好。首先,让我们将问题分为两部分:一个将字符串转换为字符列表的过程,调用执行实际转换的辅助过程,最后将转换后的列表转换回字符串:
(define (lowercase str)
(<???> ; convert the list of chars into a string
(convert ; call the helper procedure
(<???> str)))) ; convert the string into a list of chars
该convert
过程是一个助手,它完成繁重的工作并将字符列表中的每个字符转换为小写:
(define (convert strlst)
(if <???> ; if the list of chars is empty
<???> ; return the empty list
(cons ; else `cons`
(<???> <???>) ; convert to lowercase the first char in list
(convert <???>)))) ; advance recursion over list