How to sort by strings a mixed pair of string and number elements in an array with Pascal

1 Answer

0 votes
program SortByString;

const
  N = 7;

var
  Arr : array[1..N] of string;
  i, j : integer;

function ExtractName(s : string) : string;
var
  p : integer;
begin
  { find last space }
  p := Length(s);
  while (p > 0) and (s[p] <> ' ') do
    Dec(p);

  ExtractName := Copy(s, 1, p - 1);
end;

procedure Swap(var a, b : string);
var
  t : string;
begin
  t := a;
  a := b;
  b := t;
end;

begin
  Arr[1] := 'Python 4';
  Arr[2] := 'C 9';
  Arr[3] := 'C++ 5';
  Arr[4] := 'C# 6';
  Arr[5] := 'Java 1';
  Arr[6] := 'PHP 7';
  Arr[7] := 'Go 2';

  { Bubble sort by string part }
  for i := 1 to N - 1 do
    for j := i + 1 to N do
      if ExtractName(Arr[i]) > ExtractName(Arr[j]) then
        Swap(Arr[i], Arr[j]);

  { Print result }
  for i := 1 to N do
    writeln(Arr[i]);
end.




(*
run:

C 9
C# 6
C++ 5
Go 2
Java 1
PHP 7
Python 4

*)

 



answered Jan 22 by avibootz

Related questions

...