13

我正在寻找(例如)php 的 substr 函数的 Pascal 等价物,它的工作原理如下:

$new_string = substr('abcdef', 1, 3);  // returns 'bcd'

我已经找到了,但我总是花很长时间才能找到它,所以我将答案发布给像我这样的其他人,以便能够轻松找到它。

4

3 回答 3

22

您可以使用功能复制。语法如下:

copy(string, start, length);

Pascal 中的字符串似乎从 1 开始索引,因此如下:

s1 := 'abcdef';
s2 := copy(s1, 2, 3);

将导致 s2 == 'bcd'。

希望这可以帮助某人。

于 2012-09-03T20:28:58.710 回答
0
    function substring(s: string; a, b: integer): string;
    var len: integer;
      procedure swap(var a, b: integer);
      var temp: integer;
      begin
        temp:= a;
        a:= b;
        b:= temp;
      end;
    begin
      if (a > b) then
        swap(a, b);
      len:= length(s);
      if ((len = 0) or ((a < 1) and (b < 1)) or 
          ((a > len) and (b > len))) then
      begin
        substring:= '';
      end
      else
      begin
        if (a < 1) then
          a:= 1;
        if (b > len) then
          b:= len;
        substring:= copy(s, a, b);
      end;
    end;
于 2015-08-18T18:45:27.220 回答
0

Freepascal还有一个 Copy 功能:

T:='1234567';
S:=Copy (T,1,2);   { S:='12'   }
S:=Copy (T,4,2);   { S:='45'   }
S:=Copy (T,4,8);   { S:='4567' }

我建议您查看Lazarus IDE

于 2018-02-21T20:19:53.783 回答