How can I convert 3 int variables into a single string, divided by delimiters?

  maxVal = cinta1Signal.maxVal();
  minVal = cinta1Signal.minVal();
  maxVal2 = cinta2Signal.maxVal();
  minVal2 = cinta2Signal.minVal();
  maxVal3 = NTCSignal.maxVal();
  minVal3 = NTCSignal.minVal();

  val = analogRead(TECIDO1_PIN);
  val2 = analogRead(TECIDO2_PIN);
  val3 = analogRead(NTC_PIN);

  cinta1Signal.addData(val);
  cinta2Signal.addData(val2);
  NTCSignal.addData(val3);

  meanVal = cinta1Signal.mean();
  stdDev = cinta1Signal.stdDeviation();
  meanVal2 = cinta2Signal.mean();
  stdDev2 = cinta2Signal.stdDeviation();
  meanVal3 = NTCSignal.mean();
  stdDev3 = NTCSignal.stdDeviation();

  byte mappedMean = map(meanVal, minVal, maxVal, 0, 255);
  byte mappedMean2 = map(meanVal2, minVal2, maxVal2, 0, 255);
  byte mappedMean3 = map(meanVal3, minVal3, maxVal3, 0, 255);

  char dado1 = mappedMean;
  char dado2 = mappedMean2;
  char dado3 = mappedMean3;
  String dados = String(dado1+"$"+dado2+"$"+dado3);
  blth.print(dados);

I'm reading values from 3 different sensors and I want to send those 3 variables to an android app through bluetooth.
I was told to create a string with those 3 values, separated by a delimiter (in my case, $), but how can I do that?
If I try to compile this, it returns "invalid operands of types 'const char*' and 'const char [2]' to binary 'operator+'".

TIA!

Does it really matter if the values are rendered as a single String or string?

It's just that this is the way I know how I'll split the values on java and use them to plot 3 lines on a graph.

I tried to send it with flags, but to no avail, since it was slowing the receiving-showing process on the app.

What about:

    char szChar[20];
.
.
.
    sprintf( szChar, "%d$%d$%d", dado1, dado2, dado3 );
    blth.print(szChar);
.
.
.
  byte mappedMean = map(meanVal, minVal, maxVal, 0, 255);
  byte mappedMean2 = map(meanVal2, minVal2, maxVal2, 0, 255);
  byte mappedMean3 = map(meanVal3, minVal3, maxVal3, 0, 255);

  char dado1 = mappedMean;
  char dado2 = mappedMean2;
  char dado3 = mappedMean3;
  String dados = String(dado1+"$"+dado2+"$"+dado3);
  blth.print(dados);

Do you want to send the text representation of the numbers in mappedMean, mappedMean2, and mappedMean3, or do you want to send them as binary data? Converting a byte variable to a char variable will not convert it to ASCII text.

The simple method of sending the numbers as text, separated by delimiters, is to just print everything separately. Do note that you are not sending any type of line-ending character or delimiter, commonly a line-feed or carriage-return would be send at the end to let the receiving app know the line was complete.

blth.print(mappedMean);
blth.print('

);
blth.print(mappedMean2);
blth.print('


);
blth.print(mappedMean3);

caiotonus:

  String dados = String(dado1+"$"+dado2+"$"+dado3);

blth.print(dados);

This is unnecessary. Just print them as separate parts. The receiving program won't know the difference.

blth.print(dado1);
blth.print('

...R);
blth.print(dado2);
// etc


...R