求助!字符串往前累加?(100分)

  • 主题发起人 主题发起人 虚雷
  • 开始时间 开始时间

虚雷

Unregistered / Unconfirmed
GUEST, unregistred user!
var str,strtmp: string;
字符串str:='abcdefghijklmn',通过pos('k',str)得到结果为11,
怎样从11处开始往前加,直到判断前一个字符为'e'时停止下来,然后得到的结果从前往后排,
如上面字符串最后结果应是6,7,8,9,10,11,
然后再把这几个位置转换成字符保存下来,最后结果应为 strtmp:='fghijk'
怎样实现这个功能?
请给出主要源代码,我好慢慢研究,非常感谢!
 
var str,strtmp: string;
str:='abcdefghijklmn'
reversestring(str);
I1:=Pos('k',str);
str:=copy(str,I1,length(str));
I2:=Pos('e',str);
str:=copy(str,1,I1);
reversestr(str);
 
先谢谢了,但好像还有问题啊。
因为也许是一个很长的字符串,里面还有空格等其他标点符号,也不止一个'e'和'k',
那用上面的办法好像不行吧?
能在改进一下吗?最好能加上注释。
初学者,请大家耐心点,非常感谢!
 
要最前面的'e'和最后面的'k'吗?
 
var
str: String;
i : Integer;
L : Integer;
R : String;
begin
str:='abcdefghijklmn'
L := Pos('k', Str);
I := L;
while (I > 0) and (Str <> 'e')do
begin
Dec(I);
end;
R := '';
if Str = 'e' then
R := Copy(Str, I, L);
end;
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
回复
0
查看
862
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部