According to the data types presented, the sensor stores the result as a binary number in a 16-bit integer. The first step would be to find out what the maximum and minimum value for z_gyro is. If it turns out to be 4-digit values with a sign, at least 6 char would be required for the conversion into a character string. If the buffer readOut is declared with 8 bytes, there is no harm in using the string length for the output.
I suggest converting the integer value into a string first. If you can use the C command sprintf(), this is easy:
sprintf(readOut, "%d", sensor.value.z_gyro);
Then use a for-loop to pass all characters individually to the end of the string to the print() function.
for (int i = 0; i < strlen(readOut); i++)
lcd.print(readOut[i]);
If the sprintf() function is not available, itoa() would still be possible or you could program the conversion yourself in a loop.
With the additional information "sprintf, infact all f functions (print, scan) do not exist!" it would be possible to write a simple generic function yourself. It could look like this:
void intToCString(int num, char* str) {
if (num < 0) {
*str++ = '-';
num = -num;
}
int divisor = 1;
while (num / divisor > 9) {
divisor *= 10;
}
while (divisor > 0) {
*str++ = '0' + (num / divisor);
num %= divisor;
divisor /= 10;
}
*str = '\0';
}