Add an int after a char?

Hi!
This is probably very simple, but I'm totally new to Arduino.

I use a library with a function like this:

publish(char)

In that char, I need to put the following:
"Temperature is: " + degreesint

degreesint is an int variable with the temperature. This can be 1 or 2 digits.

I tried:
publish(strcat("Temperature is: ", degreesint)); //This outputs "Temperature is: "

publish("Temperature is: " + degreesint)); //This outputs incomplete stuff like "rature is: " or "perature is: ". It changes every time

Finally I also tried:
char *degreeschar = malloc(3);
sprintf(degreeschar , "%02d", degreesint);
publish(strcat("Temperature is: ", degreeschar));

This outputs "Temperature is: 14". The next time "Temperature is: 1418". Next "Temperature is: 141819", and so on. It just adds the temperature reads one after the other. This looks like a memory problem to me, but I'm rubish at handling that.

Can anyone provide some help? I tried many more things, but I lost the code for those.
Thanks you!

Hi Delta. Thank you! That was it, I had tried something similar but not exactly that.

Is %02d really necesary? I added it thinking that way I would use the same length.
If it's not, how would I do without it?

If it's not, how would I do without it?

How would you do what? If you understand what the %02d does, you know what part(s) you can leave out. If you don't, then pay Mr. Google a visit,

Hi Paul,

You are right. I must have made a mistake when I tried and thought I was doing something wrong. It's been a very long day. To do it it's just:
sprintf(tempStr, "Temperature is :%d", degreesInt);

Thanks