Strings

A string represents a sequence of characters equivalent to an array of char. It is declared like this:

string_name : string[length]

The specifier length is a number of characters the string consists of. The string is stored internally as the given sequence of characters plus a final null character (zero) which is introduced to terminate the string. It does not count against the string’s total length.

A null string ('') is stored as a single null character.

You can assign string literals or other strings to string variables. String on the right side of an assignment operator has to be shorter or of equal length than the one on the right side. For example:

var
    msg1 : string[20];
    msg2 : string[19];

begin
  msg1 := 'This is some message';
  msg2 := 'Yet another message';

  msg1 := msg2; // this is ok, but vice versa would be illegal

Alternately, you can handle strings element–by–element. For example:

var s : string[5];
...
s := 'mik';
{
s[0] is char literal 'm'
s[1] is char literal 'i'
s[2] is char literal 'k'
s[3] is zero
s[4] is undefined
s[5] is undefined
}

Be careful when handling strings in this way, since overwriting the end of a string will cause an unpredictable behavior.

String Concatenating

mikroPascal PRO for PIC allows you to concatenate strings by means of plus operator. This kind of concatenation is applicable to string variables/literals, character variables/literals. For control characters, use the non-quoted hash sign and a numeral (e.g. #13 for CR).

Here is an example:

var msg     : string[20];
    res_txt : string[5];
    res, channel : word;

begin

  //...

  // Get result of ADC
  res := Adc_Read(channel);

  // Create string out of numeric result
  WordToStr(res, res_txt);

  // Prepare message for output
  msg := 'Result is ' +      // Text "Result is"
          res_txt     ;      // Result of ADC


  //...
  Notes :
Copyright (c) 2002-2012 mikroElektronika. All rights reserved.
What do you think about this topic ? Send us feedback!
Want more examples and libraries? 
Find them on LibStock - A place for the code