2

我尝试了以下代码但没有成功。

string.remove[index];
string.insert[index];

谁能建议我如何更正此代码?

4

3 回答 3

8

只需这样做:

stringVariable[index] := 'A';
于 2013-06-17T01:48:34.567 回答
6

您可以直接访问一个字符串,就像它是 Delphi 中的字符数组一样:

MyString[Index] := NewChar;

对于多个字符的删除和插入,该System单元提供DeleteInsert

System.Delete(MyString, Index, NumChars);
System.Insert(NewChars, MyString, Index);

最新版本的 Delphi 提供了以下辅助函数string

MyString := MyString.Remove(3, 1);
MyString := MyString.Insert(3, NewChars);

再一次,请阅读我之前提到过两次的教程。这是一个非常基本的帕斯卡问题,他们中的任何一个都会为您回答。

于 2013-06-17T01:50:51.260 回答
1

这是另一种方法。玩得开心德尔福

FUNCTION ReplaceCharInPos(CONST Text: String; Ch: Char; P: Integer): String;
VAR Lng: Integer; left, Right: String;
BEGIN
  Lng:= Length(Text);
  IF Lng = 0 THEN
    Result:= ''
  ELSE IF (P < 1) OR (P > Lng) THEN
    Result:= Text
  ELSE IF P = 1 THEN
    Result:= Ch + Copy(Text, 2, Lng - 1)
  ELSE IF P = Lng THEN
    Result:= Copy(Text, 1, Lng - 1) + Ch
  ELSE BEGIN
    Left:=  Copy(Text, 1, P - 1);
    Right:= Copy(Text, P + 1, Lng - P);
    Result:= Left + Ch + Right;
  END;
END;
于 2020-09-08T08:11:52.913 回答