It depends on how you would like to parse the string on the receiving end. JSON and CSV are both popular formats for sending a series of values in a single publish.
Essentially you would need a char buffer (c-string) to format the data into, and then publish that buffer. There are plenty of examples of using snprintf() here on the forum.
// Buffer to store the generated message
char message[255];
// Example using two doubles and an int
double data1 = 123.4;
double data2 = 56.78;
int data3 = 42;
// CSV formatting
snprintf(message, sizeof(message), "%.2f,%.2f,%d", data1, data2, data3);
// JSON formatting
snprintf(message, sizeof(message), "{\"data1\":%.2f, \"data2\":%.2f, \"data3\":%d}", data1, data2, data3);
// Publish the buffer
Particle.publish("my_event", message, PRIVATE);