STRING To HEX Converter

METHOD 1:

char errortodisplay[10]={0};

while(Serial.available()) {
str=Serial.readString();
}

if(str.indexOf("ERROR")>=0) {
int x=str.indexOf("+");
int y=str.indexOf("#");
String nes=str.substring(x+1,y);
// err= nes.toInt();

sprintf(errortodisplay,"%04X",nes.toInt());
Serial.println("er2dis=");
Serial.print(errortodisplay);

But this is showing int values.

METHOD 2:

char errortodisplay[10]={0};

while(Serial.available()) {
str=Serial.readString();
}

if(str.indexOf("ERROR")>=0) {
int x=str.indexOf("+");
int y=str.indexOf("#");
String nes=str.substring(x+1,y);
// err= nes.toInt();
char *ptr;
long ret;
ret = strtoul(nes, &ptr, 16);
Serial.println("er2dis=");
Serial.print(ret);

This is showing error at ret = strtoul(nes,&ptr,16)