send mixed data over serial I want to launch a communication between two Arduinos, in which case the first Arduino (S) sends data to the second one (R). The type of the data is mixed, consisting of integers, longs, floats and maybe some text. For example:

{125, 1250, 12500, 125000, 1.25, 12.5, 125.0, "some text"}  



I thought about converting each one value to string, adding up all strings to a big one, and send the final string with  Serial.print(Big_string).  In that case I reckon that it would be difficult for the Receiver to extract the string to the exact substrings and convert them to real values. 
A second thought was to convert all values to bytes and create a byte (or char) array, but each value would be limited to 0-255 (let alone floats and text)
A third thought was to convert them to word type (let alone the text), but I think that Serial.print( ) sends only bytes, not words.


In any case, which is the best way to send mixed data over serial?

Any thoughts would be appreciated.
I think the easiest way to solve your problem is using a separator and transmit the array values one after the other. That means having a for loop and in every iteration sending one value of the array with 

Serial.println(array[i]).

The function will 


convert numbers into Strings so you will get "125", "1250", ...
append a carriage return character (ASCII 13, or '\r') and a newline character (ASCII 10, or '\n')


On the receiver side you can simply wait for Serial.read() to equal the number 13 and (immediately afterwards) 10 and split the messages there. That works unless your transmitted strings contain new lines.

The disadvantage is, that numbers are of course transmitted in an unefficient way. If you want to transmit them as real numbers instead of strings you have to write your own protocol. This video "Wireless Module Multiple Receivers" goes into that direction, it's using a fixed packet length but it gives an idea of how such a thing works.