C znakovni niz (char *) je polje znakova, završeno s #0 znakom.
Funkcije C biblioteke zahtijevaju C, ne Pascal string argumente. Međutim, znakovni nizovi u Pascal stilu se automatski pretvaraju u one u C stilu kada se prosljeđuju rutinama koje očekuju znakovne nizove u C stilu. Ovo radi jedino ako rutina samo čita iz znakovnog niza, ne ako ga ona modificira.
Npr. to je način kako ćete pozvati system() poziv u vašoj C biblioteci (što više nije neophodno, otkad je već ugrađen Execute):
program SysCall; function System (CmdLine: CString): Integer; external name 'system'; var Result: Integer; begin Result := System ('ls -l'); WriteLn ('system() call returned: ', Result) end.
Mogli biste koristiti tip PChar umjesto CString. I CString i PChar su oboje definirani kao ^Char – iako mi preporučujemo CString jer to čini jasnijim da govorimo o nekakvom nizu prije nego o jednom jedinom znaku.
Mnogo rutina iz biblioteke u Pascalu za mnoge aplikacije postoji u GPC jedinici i u nekim drugim jedinicama. Kad god je to moguće, trebalo bi ove koristiti (npr. Execute radije nego system(), i tada se ne trebate brinuti o CString-ovima.
Molimo NE prosljeđivati C znakovne nizove kao const ili var parametar ako C prototip kaže const char * ili ćete vjerojatno dobiti "Segmentation fault" pogrešku.