procedure TForm1.Button1Click(Sender: TObject); var Str:String; i:Integer; begin Str:='01234567890'; For i:=3 to 6 do Str[i]:='a'; ShowMessage(Str); end; 你可以用个循环.我修改你的代码.
var S1,S2: String; begin S1 := //////// S2 := 'aaa'; for i:=1 to 3 do S1[i+2] := S2[i]; //用S2换S1的3-5位 end;
谢谢 ksaiy(消失在人海),请问我改成下面代码,为何提示Str[i]:=copy(instr,i-2,1) 这一行错误?procedure TForm1.Button1Click(Sender: TObject); var Str,instr:String; i:Integer; begin Str:='01234567890'; instr:="abc" For i:=3 to 6 do Str[i]:=copy(instr,i-2,1); ShowMessage(Str); end;
{------------------------------------------------------------------------------} //SourceString: 待处理字符串;SubString:需要替换的子字符串;BeginIndex,EndIndex: //分别为SourceString中开始和结束位置; //替换成功后传入的SourceString值改变,返回结果true;否则返回结果false; function TForm1.ReplaceSubString(var SourceString:String;SubString:string; BeginIndex,EndIndex:integer):boolean; var i:integer; begin if (Length(SubString) <> (EndIndex-BeginIndex)) or (Length(SourceString) < EndIndex) or (BeginIndex < 1) then begin result:= false; exit; end; for i:= 1 to (EndIndex-BeginIndex) do SourceString[i+BeginIndex]:= SubString[i]; result:= true; end;
S: String;
S[3] := 'a';
应该可以的:)
S: String;
S[3] := 'a';
只能替换1个位置呀,!
S: String;
S[3] := 'a';
应该可以的:)这个只能换1个字符呀,我想换的是N个连续字符?
将其存入字符数组中,然后替换指定的字符,再重新转换成字符串,具体做法不用说吧?问题是后面重复的我不想替换,如 012345012345 我只想换前面的123,后面的不换,请问该如何做?
var
Str:String;
i:Integer;
begin
Str:='01234567890';
For i:=3 to 6 do
Str[i]:='a';
ShowMessage(Str);
end;
你可以用个循环.我修改你的代码.
S1,S2: String;
begin
S1 := ////////
S2 := 'aaa';
for i:=1 to 3 do
S1[i+2] := S2[i]; //用S2换S1的3-5位
end;
var
Str,instr:String;
i:Integer;
begin
Str:='01234567890';
instr:="abc"
For i:=3 to 6 do
Str[i]:=copy(instr,i-2,1);
ShowMessage(Str);
end;
//SourceString: 待处理字符串;SubString:需要替换的子字符串;BeginIndex,EndIndex:
//分别为SourceString中开始和结束位置;
//替换成功后传入的SourceString值改变,返回结果true;否则返回结果false;
function TForm1.ReplaceSubString(var SourceString:String;SubString:string;
BeginIndex,EndIndex:integer):boolean;
var
i:integer;
begin
if (Length(SubString) <> (EndIndex-BeginIndex))
or (Length(SourceString) < EndIndex)
or (BeginIndex < 1)
then
begin
result:= false;
exit;
end;
for i:= 1 to (EndIndex-BeginIndex) do
SourceString[i+BeginIndex]:= SubString[i];
result:= true;
end;