If you are sending strings to a program written with any type of 'C'- language, do you not have to terminate each string with the null (CHAR(0)) character first? That's how C knows where the string ends. Any string length argument returned by Fortran must therefore include the terminating null character in the count so the C-side string length must match or exceed this length.
Also, whenever a 'C'-type program sends a reference to a string, the string will be terminated with a null character too, so looking for the null character lets you find the string's length.