Search code examples
arraysstringpascalord

How do i get an access to an element in a string that is in the array in Pascal?


I have a programm that reads an array of letters (it can be any text). Then I need to compare the 1st and the 4th element of each line of code but the programm doesn't allow me to do this. How can I get an access to those elements in order to compare them?

Program acmp387;

uses crt;

var
  n, i, answer : integer;
  letters : array[1..1000] of string;

Begin
  read(n);

  for i:=1 to n do
    begin
      read(letters[i]);
      if ord(letters[i][1]) = ord(letters[i][4])
       then answer := answer + 1;
    end;

  writeln(answer);
  readkey;
End.       

I'm interested in this line:

if ord(letters[i][1]) = ord(letters[i][4])

Solution

  • Your access is OK (if all strings have at least four characters, for strings with 0 to 3 characters there may be an error/message). May be you have a problem to run your program and it does not behave as expected.

    Your program will work as expected if you replace the read statements by readln. A read statements makes sense only in limited situations, in interactive programs you will almost always use readln. With these changes and the input

    5
    abcdef
    abcabc
    0101010101010101
    10011001
    123456
    

    you will get the result display 2 (the lines/strings abcabc and 10011001 meet the criterion and will increment answer).