; defining the procedure char_toupper to convert a lower case character to upper case
(define char_toupper (lambda (myChar)
; defining x as the ASCII value of myChar
(define x (char->integer myChar))
; defining y as x-32
(define y (- x 32))
; if statement for while x is less than 91 (already uppercase)
(if (< x 91)
; if it is already uppercase, just display it
(display myChar)
; otherwise, if x is greater than 96 (lowercase)
(if (> x 96)
; then display the character equivalent to the ASCII value given by y
(display (integer->char y))))))
(define string_toupper (lambda (myString newString i)
(if (< i (string-length myString))
(string_toupper myString (string-append newString (char_toupper (string-ref myString i))) (+ 1 i)))
(display newString)))
(string_toupper (read) "" 0)这会将每个字符转换为大写,并显示出来。但我一直收到一个错误,我可以找到它。有什么帮助吗。谢谢
发布于 2012-11-11 06:43:26
在球拍中,您必须在单臂情况下编写when而不是if。
也就是说,将以下表达式中的if更改为when。
(if (> x 96)
; then display the character equivalent to the ASCII value given by y
(display (integer->char y)))还要注意的是,string-upcase是内置的。
https://stackoverflow.com/questions/13326694
复制相似问题