char string[8] = "0.00000";
The compiler can count. If you are going to define what to initialize the array to, don't define the length. If you are going to define the length, the compiler will happily initialize all the elements to NULL for you.
Do you mean that you control the number of characters in each record so that the total number of entries is equal to the total number or charters divided by the number of characters per record?
Too many undefined or misspelled terms in that statement for me to follow.
By "fixed length records" I mean that every record contains the same (KNOWN) number of characters. The Print::print() function does NOT ensure that the output is a consistent length.
char stuff[16];
dtostrf(hih.humidity(), 8, 3, stuff);
ensures that stuff contains not less than 8 characters. There MAY be more.
char fixed[16];
sprintf(fixed, "%15s", stuff);
ensures that fixed contains EXACTLY 15 characters - with leading spaces as needed.