You have declared a character array, plaa, of fixed size, with an initial value:
char plaa[]="haly=";
Now, even though there is no room in the array, you are trying to add more characters to the end:
strcat(plaa," hh");
Here, you are casting an integer to a character:
ppp=char(first);
This is not converting the integer to it's string representation. In other words, if first was 48, ppp would not be "48". Instead, ppp would be '0'. (Or something close...)
Now, you are trying to append that character to the array in which there is no room:
strcat(plaa,ppp);
The compiler does not like this code, because the 2nd argument for the strcat function is supposed to be a string (a null-terminated array of characters), not a single character.
You need to declare your initial array, plaa, to have a fixed, larger size:
char plaa[40];
Then, you can initialize it:
plaa[0] = '\0';
strcat(plaa, "haly=");
Now, if you want to convert first to a string:
char firstStg[8];
itoa(first, firstStg, 10); // 3rd argument is base, not size (10 is decimal)
Now, you can concatenate the strings:
strcat(plaa, firstStg);