怎样完成在一个字符串中取出字符(遇*号取一次)(50分)

  • 主题发起人 主题发起人 zwqyx
  • 开始时间 开始时间
Z

zwqyx

Unregistered / Unconfirmed
GUEST, unregistred user!
比如我要在20*5*2000中取出20,5;还要在20*34*2000中取出20,34。先谢了。
 
用循环吧
 
pos后取剩余串
 
循环取啊,不难吧
 
procedure GetStr(const str:string);
var i,ilast:integer;
ss:TStringList;
begin
ss:=TStringList.Create;
iLast:=1;
for i:=0 to Length(str) do
if str='*' then
begin
ss.Add(copy(str,iLast,i-iLast));
iLast:=i+1;
end;
ss.Add(copy(str,iLast,i-iLast));
ListBox1.Items:=ss;
end;
//测试成功.
 
如果用s代替20*5*2000

copy(s,1,pos('*',s)-1)不就得出前面的了?
然後再用s減去copy(s,1,pos('*',s)-1)
再將其進行Copy不就出來了嗎
 
var
Pstr:string;
Ipos,i:integer;
array1:array [1..n] of string;//存放结果
begin
pstr:=str;
Ipos:=pos('*',pstr)
i:=0
while Ipos>0 do
begin
array1:=copy(Pstr,Ipos-1);
delete(Pstr,ipos);
Ipos:=pos('*',pstr)
end;
此方法因为会破坏原有的字符串 ,所以在调用前最好保存原有的字符串否则出事我不管:-)
 
如果用s代替20*5*2000

copy(s,1,pos('*',s)-1)不就得出前面的了?
然後再用s減去copy(s,1,pos('*',s)-1)
再將其進行Copy不就出來了嗎
 
多人接受答案了。
 

Similar threads

后退
顶部