For strings you need char* and not byte*, though some platforms might support it.
Byte is unsigned char and should be used only for binary data which char anyways supports.
If you must use byte then, explicitly cast byte* to char* while calling the function and cast its return value to byte*
char* inputStr = "hello";
byte* outputStr = (byte*) input; //Might crash
//Better is to first allocate memory and then copy the elements
int strLen = strlen(inoutStr);
outputStr = new byte[len + 1];
memset(outputStr, len + 1, 0);
for (int i = 0; i <= len; i++)
{
outputStr[i] = (byte)inputStr[i];
}
//Use outputStr
delete[] outputStr; // Clean up