you are assigning address of a constant string to non constant char pointer. That is why compiler gave this warning. Use below code to avoid this warning
For all string transmissions if you have const char* input i.e. input like "Hello World" instead of pointer use pointer type cast to resolve the issue, for e.g.
Code:
LCD_Out_Cp((unsigned char*)"Hello World!");
I see that your Line 17 is wrong, you need to pass a pointer to LCD_Out_Cp and hence only Str1 not *Str. You are using *Str in your LCD_Out_Cp function which means that Str is an address, so use Str not *Str and if you get warnings or errors about pointer type conversions then use type casting for pointers.
For pointer concept
*str returns value, str returns address of the value.
So allways keep in mind that print the value and increase the address and print the value and so on....
XC8 compiler creates errors for pointers, but C18 compiler does'nt.