a:array of string; b:array of string; i:integer; s:string; t:boolean; begin s:='2'; t:=false; setlength(b,high(a)-1); for i:=low(a) to high(a)-1 do begin if a[i]=s then t:=true; if t then b[i]:=a[i+1]; else b[i]:=a[i]; end; end; ////////////以上是比较笨的办法,其实象你上面所述,直接用STRING就行了,他本身就是个数字,而且支持DELETE。数组就麻烦了,它的删除往往要影响后面的元素。
如果是原有字符串的子串,进行删除操作,
比如: 'abcdefghjkl'的子串可能是:'defgh'
我怎样判断一个值存在,并删除它
例 a:array of string;
原理已经有‘1’‘2’‘3’
我怎样判断‘2’存在并删除,数组值变成
‘1’‘3’// 像你举例的这种情况,你就需要遍历数组进行比较,就是一个查找算法的实现而已,查找算法很多呀,比如冒泡,二分法等等..
的Delete方法
没有办法直接删除 因为一旦开辟了一个数组内存空间 那么就是静态的了 只能全部释放
我觉得你的要求的得用链表一类的东西来实现 比如TList TStringList
b:array of string;
i:integer; s:string;
t:boolean;
begin
s:='2';
t:=false;
setlength(b,high(a)-1);
for i:=low(a) to high(a)-1 do
begin
if a[i]=s then t:=true;
if t then b[i]:=a[i+1];
else b[i]:=a[i];
end;
end;
////////////以上是比较笨的办法,其实象你上面所述,直接用STRING就行了,他本身就是个数字,而且支持DELETE。数组就麻烦了,它的删除往往要影响后面的元素。