Zamiana liter na wielkie w łańcuchu znaków

Arduino:
Zamiana liter na wielkie w łańcuchu znaków

Jak to zrobić:

Arduino, znane przede wszystkim z interakcji z sprzętem, zawiera także podstawowe możliwości manipulacji ciągami za pomocą obiektu String. Jednakże, brakuje mu bezpośredniej funkcji capitalize, jaką widzimy w językach wyższego poziomu. Dlatego implementujemy kapitalizację, iterując po ciągu znaków i stosując transformacje wielkości liter.

Oto podstawowy przykład bez używania bibliotek stron trzecich:

String capitalizeString(String input) {
  if (input.length() == 0) {
    return ""; // Zwróć pusty ciąg, jeśli wejście jest puste
  }
  input.toLowerCase(); // Najpierw zamień cały ciąg na małe litery
  input.setCharAt(0, input.charAt(0) - 32); // Zamień pierwszą literę na wielką
  
  // Zamień na wielkie litery te, które następują po spacji
  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); // Wyjście: "Hello Arduino World"
}

void loop() {
  // Pusta pętla
}

Ten fragment kodu definiuje funkcję capitalizeString, która najpierw przekształca cały ciąg na małe litery, aby ujednolicić jego wielkość liter. Następnie zamienia pierwszy znak i każdy znak, który następuje po spacji, na wielką literę, efektywnie kapitalizując każde słowo w przekazanym ciągu. Zauważ, że ta podstawowa implementacja zakłada kodowanie znaków ASCII i może wymagać dostosowań dla pełnego wsparcia Unicode.

Obecnie nie ma szeroko przyjętych bibliotek stron trzecich specjalnie do manipulacji ciągami w ekosystemie Arduino, głównie z powodu jego skupienia na interakcji z sprzętem i efektywności. Jednakże, dostarczony przykład jest prostym sposobem na osiągnięcie kapitalizacji ciągów w środowisku programowania Arduino.