So you never tried to write a function that accepts strings with different length?
type string = record Length: Byte; Chars: array [1..255] of Char end;
You can use this to make your own string handling procedures, the hardest part would be passing arbitrary string literals but that could probably worked around too with conversion functions.