我需要帮助解决这个问题,因为我不知道如何解决这个问题
定义一个过程选择,它接受一个非空字符串s和一个非负整数i,并返回一个长度为1的子字符串,该子字符串由s中索引i处的字符组成。假设我是字符串s的合法索引。
〜(选择" cat" 0)
" C"
〜(选择" cat" 1)
""
〜(选择" cat" 2)
" T"
答案 0 :(得分:1)
试试这个,使用标准的Scheme程序很简单:
(define (pick str idx)
(string (string-ref str idx)))
以下是它的工作原理:string-ref
返回给定索引处字符串中的字符,string
过程将字符转换为长度为1的字符串。
没有必要使用substring
程序(因为我们只需要一个字符),但这也是一个有效的选择。
答案 1 :(得分:1)
一种解决方案是使用substring
。
> (substring "Scheme" 1 3)
"ch"
这里“方案”一词的字母已编号。
表达式(substring "Scheme" 1 3)
创建一个新字符串
编号从1到2的字母。索引3是第一个索引
不在新字符串中。
由于你只想挑出一个角色,试试这个:
> (substring "Scheme" 1 2)
"c"
> (substring "Scheme" 2 3)
"h"
现在您可以定义自己的功能:
(define (pick a-string i)
(substring a-string ??? ???))
该怎么办?是