delphi copy函数的疑惑

我再补充下:我疑惑的是COPY(S,i,1)与copy(s,3,1)varlist:TStrings;lst:TStringList;i:Integer;ss,s:str... 我再补充下:我疑惑的是COPY(S,i,1) 与copy(s,3,1)
var
list:TStrings;
lst:TStringList;
i:Integer;
ss,s:string;
begin
s:='';
ss:='';
lst:=TStringList.Create; //建立 TStrings虚类的子类 ,
// list:=TStrings.Create; // 因为TStrings虚类不能实例化,所以必须建立上面一步
memo1.Lines.add('Hello Hi How are you');
list:=memo1.Lines ;

s:=list[0];

for i:=1 to Length(s) do //ength(s),得到S的长度
begin
if Copy(s,i,1)<>' ' then
begin
ss:= ss+Copy(s,i,1); //将符合的存入ss
// 这句Copy(s,i,1) 看了结果能把Hi, How, are, you各自整体都拷过去。按理说这个“1”只是一个长度,那就是说结果应该就是H一个字母。为什么会是全部都拷了?!

end
else
lst.Add(ss);
lst.SaveToFile('d:\'+ss+'.txt');
lst.Clear;
ss:='';
end;
展开
 我来答
荷凌忙4935
2010-12-13 · 超过11用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:35万
展开全部
你的想法错了,他并不是在执行ss:= ss+Copy(s,i,1);就拷贝了一个单词而是根据循环一个字符一个字符的复制的。每个单词中间有空格,当循环取到空格时说明一个单词复制完成就执行else后面的语句了,最后还清空ss(这句ss:='';)。
还有你的else后面应该还少个begin最后也少一个end
一霎秋风惊画扇
2010-12-11 · TA获得超过795个赞
知道小有建树答主
回答量:66
采纳率:0%
帮助的人:83.2万
展开全部
NO!第三个参数是截取的长度!
例如 s:='abcdefg';
则 copy(s,3,1) 就是'c',copy(s,3,3)就是'cde'。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mit1208
2010-12-10 · TA获得超过2347个赞
知道大有可为答主
回答量:2743
采纳率:0%
帮助的人:1849万
展开全部
i是字符串开始的位置.1为长度
copy(s,i,1)
i :=1;的时候
字符串为H

第一个参数是字符,第二个参数是起始位置,第三个参数是终止位置
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
surwe
2010-12-10 · TA获得超过631个赞
知道小有建树答主
回答量:1339
采纳率:44%
帮助的人:246万
展开全部
从一个字符串中的第几个元素开始取几个元素
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式