Capitalizzare una stringa

Arduino:
Capitalizzare una stringa

Come fare:

Arduino, principalmente noto per l’interazione con l’hardware, include anche capacità di base di manipolazione delle stringhe attraverso il suo oggetto String. Tuttavia, manca di una funzione capitalize diretta vista nei linguaggi di livello superiore. Quindi, implementiamo la capitalizzazione iterando su una stringa e applicando trasformazioni di maiuscolo/minuscolo.

Ecco un esempio base senza utilizzare librerie di terze parti:

String capitalizeString(String input) {
  if (input.length() == 0) {
    return ""; // Restituisce una stringa vuota se l'input è vuoto
  }
  input.toLowerCase(); // Converti l'intera stringa in minuscolo all'inizio
  input.setCharAt(0, input.charAt(0) - 32); // Capitalizza il primo carattere
  
  // Capitalizza le lettere che seguono uno spazio
  for (int i = 1; i < input.length(); i++) {
    if (input.charAt(i - 1) == ' ') {
      input.setCharAt(i, input.charAt(i) - 32);
    }
  }
  return input;
}

void setup() {
  Serial.begin(9600);
  String testStr = "hello arduino world";
  String capitalizedStr = capitalizeString(testStr);
  Serial.println(capitalizedStr); // Output: "Hello Arduino World"
}

void loop() {
  // Ciclo vuoto
}

Questo frammento di codice definisce una funzione capitalizeString che prima converte l’intera stringa in minuscolo per standardizzare il suo caso. Poi capitalizza il primo carattere e qualsiasi carattere che segue uno spazio, capitalizzando efficacemente ogni parola nella stringa di input. Notare che questa implementazione rudimentale assume la codifica dei caratteri ASCII e potrebbe necessitare di aggiustamenti per un pieno supporto Unicode.

Attualmente, non ci sono librerie di terze parti ampiamente adottate specificamente per la manipolazione delle stringhe nell’ecosistema Arduino, principalmente a causa del suo focus sull’interazione hardware e sull’efficienza. Tuttavia, l’esempio fornito è un modo semplice per ottenere la capitalizzazione delle stringhe all’interno dell’ambiente di programmazione di Arduino.