ISO C++ forbids comparison between pointer and integer [-fpermissive]

void loop() {
//Function which ask for input from the Serial port

if (Serial.available() > 0) {
String InputStr = Serial.readStringUntil(';');

if (InputStr.startsWith("!")){
String AshToChar = "";
AshToChar = AshToChar + (InputStr);
Serial.println(ashString2string(AshToChar)); }
else if(InputStr.startsWith("@")){
String AshToChar = "";
AshToChar = AshToChar + (InputStr);
Serial.println(ashString2string(AshToChar)); }
else if (InputStr.startsWith("*")){
String AshToChar = "";
AshToChar = AshToChar + (InputStr);
Serial.println(ashString2string(AshToChar)); }
else {
String CharToAsh = "";
CharToAsh = CharToAsh + (InputStr);
printash(CharToAsh);

for (int x=0; CharToAsh.length(); x++){
if (CharToAsh.charAt(x) == "!"){
excf();
nextSignals(); }
else if (CharToAsh.charAt(x) == "*"){
multif();
nextSignals(); }
else if (CharToAsh.charAt(x) == "@"){
atf();
nextSignals(); }
else if (CharToAsh.charAt(x) == "/"){
nextSignals();
nextSignals(); }
else if (CharToAsh.charAt(x) == " "){
nextWord(); }

}
}

}

}

:confused: Please. Can someone tell me whats happenning?

Its wrong for the 4 else if at the bottom

You've only posted a code snippet so I can't test but my guess is you need to change for example:

KnightRag:
if (CharToAsh.charAt(x) == "!"){

to:

 if (CharToAsh.charAt(x) == '!'){

From : http://www.arduino.cc/en/Reference/String

strings are always defined inside double quotes ("Abc") and characters are always defined inside single quotes('A').

Please in the future:

  • Do a Tools > Auto Format on your sketch
  • Remove unnecessary whitespace
  • Post your(complete) code using code tags(</> button).
  • Post the complete error message using code tags.