Probleme beim splitten eingegebener Strings mittels strtok

Hallo,

ich wollte einen mit meinem Code einen eingebenen String aufsplitten und zwar entweder in ein String und einen integer oder einen String und zwei Dopple. Eigentlich dachte ich sei schon ganz nah drann. Denn was ich heute dem Sketch hinzugefügt habe, war das zweite und dritte splitten und das umwandeln und plötzlich funktioniert es so gar nichts mehr.

Will heißen, wenn ich die neuen Codeteile auskommentiere, funktioniert, der alte Teil wie eh und je... Wenn es aber darum geht, als ich einen zweiten durchs splitten erhalten habe, hat der Code noch funktioniert...

nun wenn der neue Teil des Codes nicht auskommentiert ist... ließt das Arduinoboard z.B.

statt:

"Hallo Was machst du so"

meist

"Hxaxlxlxox xWxaxsx xmxaxcxhxsxtx xdxux xsxox"

Wobei x ein (zufäliges?) Zeichen ist, das zumindest für jedes Hochladen des Codes gleich ist. Daher funktioniert eigentlich gar nichts mehr richtig.

Ich habe eigentlich schöne C-Seiten resultiert:

und gleichzeitig... habe ich nach ähnlichen Problemen bei Arduino gesucht, aber dass durchgehen der Seiten und der Threads im Forum die gefunden hatte, konnte mir irgendwie nicht weiterhelfen.

Habe auch Mal versucht, das strtok gegen ein strtok_r auszutauschen, das Resultat ist ähnlich.

#include <string.h>

/*
/ 
/ The character array heareafter called string is signaled to end by
CR ('\r') or LN ('\n') or both.
/ Therefore the Serial monitor has to be set, arcordingly.
/ 
/******************************************************************
/The module is used to read in Values as followes: String Integer OR String Double Double.
/******************************************************************
/Therefore only the following displayable ASCII characters can be read in:
/A..Z, a..z, 0..9 the dot and space.
*/

const uint8_t MAX = 40;        //maximum number if characters that can be read in per command
char inputString[MAX];         // a string to hold incoming data
boolean stringComplete = false;  // whether the string is complete

void setup() {
  Serial.begin(115200);
}

void loop() {
  // print the string when a newline arrives:

}

void serialEvent() {
  readInCommands();
}


void readInCommands() {
    
  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();
    if ((inChar >= '0' && inChar <= '9') || (inChar >= 'a' && inChar <= 'z') || (inChar >= 'A' && inChar <= 'Z') || inChar == ' ' || inChar == '.' )
      strcat(inputString,&inChar);
    // if the incoming character is a newline or cr, set a flag
    if ((inChar == '\r')||(inChar == '\n') ) {
      stringComplete = true;
    }
  }
  
  if (stringComplete) {

  Serial.println(inputString); 
  char *outString = strtok(inputString, " ");
  char *outCommand = outString;
  Serial.println(outCommand);
   
  char *valueTest;
  valueTest = (char *)memchr(outString, '.', sizeof(outString));//Tests wether integer or double
  if (  valueTest != NULL) {
    //if its a double
    outString = strtok(inputString, " ");
    double  outFloat1  = atof (outString);
    Serial.println(outFloat1);
    
    outString = strtok(inputString, " ");
    double  outFloat2  = atof (outString);
    Serial.println(outFloat2);
  }
  else {
    //if its an integer
    outString = strtok(inputString, " ");
    int  outInt  = atoi (outString);
    Serial.println(outInt);
  }
     
    
           
    
    // clear the strings:
    inputString[0] = '\0';
    outString[0] = '\0';
    outCommand[0] = '\0';
    
    stringComplete = false;
  }
}

Liebe Grüße und vielen Dank fürs weiterhelfen!