Arduino:
Łączenie łańcuchów znaków
Jak to zrobić:
String greeting = "Cześć ";
String name = "Janek";
String message = greeting + name + "!";
Serial.begin(9600);
Serial.println(message); // Wyświetla: Cześć Janek!
Alternatywnie, przy użyciu metod dla obiektów String:
String greeting = "Cześć ";
greeting.concat("Janek");
greeting.concat("!");
Serial.begin(9600);
Serial.println(greeting); // Wyświetla: Cześć Janek!
Jeżeli przetwarzasz dane w pamięci podręcznej, unikaj String gdzie to możliwe:
char greeting[] = "Cześć ";
char name[] = "Janek";
char message[20];
strcpy(message, greeting);
strcat(message, name);
strcat(message, "!");
Serial.begin(9600);
Serial.println(message); // Wyświetla: Cześć Janek!
Deep Dive
Konkatenacja łańcuchów znaków nie jest czymś nowym – od dziesięcioleci jest fundamentem języków programowania. W przypadku Arduino i innych ograniczonych zasobowo środowisk, ważne jest, by pamiętać o zarządzaniu pamięcią. Używanie typu String
może prowadzić do fragmentacji pamięci dynamicznej, szczególnie w przypadku wielokrotnego łączenia. Alternatywą może być użycie char
arrays z funkcjami strcpy
i strcat
, które są bardziej przewidywalne pod względem zużycia pamięci.