not a conversion problem, you didn't add the null byte at the end of your string
Val[0] = Carac;
Val[1] = 0
All routines in C/C++ that take a char array as input with intent of processing as a string of text need to be null terminated, i.e. add a 0 byte at the end of your text.