char myString[] = "\n uno due tre quattro \r\n";
char* trim_and_reduce_spaces(char* inStr) {
char buf[strlen(inStr) + 1] = {0};
// Tokenize della stringa di input
char* token = strtok(inStr, " \n\r"); // Rimuovo anche i caratteri non stampabili
strcat(buf, token);
while (token != NULL) {
// token = strtok(NULL, " ");
token = strtok(NULL, " \n\r"); // Rimuovo anche i caratteri non stampabili
if (token != NULL) {
strcat(buf, " "); // Aggiungo un solo spazio tra una parola e la successiva
strcat(buf, token); // Aggiungo la parola successiva
}
}
// Sovrascrivi il contenuto della stringa
strcpy(inStr, buf);
// Ritorno il puntatore alla stringa di input per comodità
return inStr;
}
void setup() {
Serial.begin(115200);
Serial.println(trim_and_reduce_spaces(myString));
}
void loop() {
// put your main code here, to run repeatedly:
}