Arduino – Karakterláncok

A karakterláncok, (string, kisbetűvel) gyakorlatilag karaktertömbök, ezekről az előző részben már volt szó, a karakterláncokat szöveg tárolására használjuk. Ezeket szövegeket aztán felhasználhatjuk az arduino programunkban egyéb interakciókra, például billentyűzetről beolvasott karakterek tárolására, vagy soros monitorra, LCD-re íráshoz.

Az alábbi példák szerint lehet deklarálni. A karaktertömbök utolsó eleme a ‘\0’ (nulla), innen ismeri fel a fordító a string végét. Ha nem írjuk be a nullát, akkor a fordító megteszi ezt helyettünk. Karaktereket aposztrofok közé kell írni a tömbökbe.

char myString[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '
char myString[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '\0'};
char myString[12] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'};
'}; char myString[12] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'};

A karakterlánc tömböt pl. kinyomtathatjuk a soros monitorra a Serial.println() használatával.

Serial.println(myString);

Egyszerűbben, átláthatóbban is leírhatjuk a fenti stringet a tömbbe. Karakterláncokat idézőjelek közé kell írni.

char myString[] = "Hello World";
char myString[] = 
   "Első sor "
   "Második sor "
   "Harmadik ";

Megváltoztathatjuk egy string tömb tartalmát futásidőben, az alábbi példa szerint. Elöször az eredeti karakterlánc tömb 5. indexébe beírjuk a lezáró nullát, ezzel töröljük a string második részét, a szóközt „World” karakterláncot. majd az 5. indextől új karaktereket fűzünk hozzá.

char myString[] = "Hello World";

void setup() 
{
  Serial.begin(9600);
  Serial.println(myString);

  myString[5] = 0;
  Serial.println(myString);

  myString[5] = ' ';
  myString[6] = 'A';
  myString[7] = 'r';
  myString[8] = 'd';
  myString[9] = 'u';
  myString[10] = 'i';
  myString[11] = 'n';
  myString[12] = 'o';
  myString[13] = 0;
  Serial.println(myString);
}
void loop() 
{

}

A karakterláncokhoz használhatunk pár beépített függvényt is. Ezekkel a „C” fukciókkal manipulálhatjuk a stringtömböt, de információkat is megtudhatunk róluk.

A sizeof () operátor segítségével megkapjuk a stringet tartalmazó tömb hosszát. A hosszúság magában foglalja a tömböt lezáró nullát, tehát a hossza eggyel több, mint a karakterlánc hossza.

Serial.println(sizeof(myString));

A strlen () függvény segítségével megkapjuk a karakterlánc hosszát. A karakterlánc hossza csak a nyomtatható karakterekre vonatkozik, és nem tartalmazza a tömböt lezáró nullát.

Serial.print(strlen(myString));

Az strcpy () függvény két paraméterrel rendelkezik. Az első paraméterbe bemásolja a második paraméter tartalmát. Így átmásolhatjuk a karakterláncot egy nagyobb tömbbe, és később hozzáfűzhetünk másik stringet.

strcpy(myNewString, myString);
Serial.println(myNewString);

A strcat () függvény segítségével összefűzhetünk két stringet. Az strcat () függvény a második paraméterben lévő karakterláncot az első paraméterben lévő karakterlánc végére illeszti. Arra kell figyelni, hogy az első paraméterben átadott tömb mérete elegendő legyen mindkét string tárolására.

strcat(myNewString, " ezt a stringet hozzáilleszti");

A következő részben a sokkal hatékonyabb Arduino String() objektum használatát járuk körül.



Erőteljes Arduino tábla az Arduino Mega2560 breadboard adapterrel.

Arduino Mega2560 Rev3 Mikrokontroller
Erőteljes Arduino tábla az Arduino Mega2560 breadboard adapterrel – hirdetés