Hello,
IF you wish to live without classes, you should consider, that string is a very complex class in C++ (and does not exist in C).
Your function PrintStringProperties( Str : String; var details : String ): Boolean; can be easy ported to C++ using string class.
If you stay on a solution without classes, no problem with first argument Str:String, char* can be used in C.
But the second argument, var details:string, is complex. If requires memory allocation.
I do not recommend memory allocation in PrintStringProperties (second arg double pointer char** detals). It is a bad style, in this case caller should think about the memory freeing.
So, details memory should be allocated in caller task. And passed as char* details, caller responds that enough memory allocated.
Alternative - two args (char* details, int detailsize), specifying also amount of memory available. In this case, PrintStringProperties return false, if not enough memory.
Best regards,
Maris