Leírás
A szöveges karakterláncok (stringek) kétféleképpen ábrázolhatók. Használhatja a String adattípust, amely a 0019-es verziótól kezdve a mag részét képezi, vagy létrehozhat egy karakterláncot egy char típusú tömbből, és nullával lezárja. Ez az oldal az utóbbi módszert ismerteti. További részletekért a String objektumról, amely több funkcionalitást biztosít több memória árán, tekintse meg a String objektum oldalt.
Szintaxis
Az alábbiak mindegyike érvényes deklaráció a karakterláncokhoz.
char Str1[15];
char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'};
char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
char Str4[] = "arduino";
char Str5[8] = "arduino";
char Str6[15] = "arduino";
Lehetőségek karakterláncok deklarálására
-
Egy karaktertömb deklarálása inicializálás nélkül, mint az Str1-ben
-
Egy karaktertömb deklarálása (egy extra karakterrel), és a fordító hozzáadja a szükséges null karaktert, mint az Str2-ben
-
Explicit módon adja hozzá a nulla karaktert, Str3
-
Inicializálás egy karakterlánc-állandóval, idézőjelben; a fordító úgy méretezi a tömböt, hogy illeszkedjen a karakterlánc-állandóhoz és a befejező nullkarakterhez, Str4
-
Inicializálja a tömböt explicit méret- és karakterlánc-állandóval, Str5
-
Inicializálja a tömböt, és hagy extra helyet egy nagyobb karakterláncnak, Str6
Nulla lezárás
Ez lehetővé teszi, hogy a függvények (például a Serial.print()
) megmondják, hol van egy karakterlánc vége. Ellenkező esetben folytatnák a memória további bájtjainak olvasását, amelyek valójában nem részei a karakterláncnak.
Ez azt jelenti, hogy a karakterláncban eggyel több karakternek kell helyet adnia, mint a kívánt szövegnek. Ezért az Str2-nek és az Str5-nek nyolc karakterből kell állnia, bár az "arduino" csak hét – az utolsó pozíció automatikusan nulla karakterrel lesz kitöltve. Az Str4 mérete automatikusan nyolc karakterre lesz méretezve, egy az extra nulla karakterhez. Az Str3-ban saját magunk is beépítettük a nulla karaktert (a '\0'-t).
Vegye figyelembe, hogy lehetséges egy karakterlánc utolsó nulla karakter nélkül (például ha az Str2 hosszát hét helyett nyolcra adta meg). Ez megszakítja a legtöbb karakterláncot használó függvényt, ezért ezt nem szabad szándékosan csinálni. Ha azonban észreveszi, hogy valami furcsán viselkedik (a karakterláncban nem szereplő karakterekkel működik), akkor ez lehet a probléma.
Egyszeres vagy dupla idézőjelek?
A karakterláncok mindig kettős idézőjelben ("Abc"), a karakterek pedig mindig szimpla idézőjelben ('A') vannak megadva.
Hosszú stringek tördelése
A hosszú stringeket így tördelheti fel:
char myString[] = "Ez az első sor"
" ez a második sor"
" és így tovább";
Stringek tömbjei
Ha nagy mennyiségű szöveggel dolgozik, mint például egy LCD-kijelzővel rendelkező projekt, akkor gyakran kényelmes karakterláncok tömbjét beállítani. Mivel maguk a karakterláncok tömbök, ez valójában egy kétdimenziós tömb példája.
Az alábbi kódban a char
adattípus utáni csillag "char *" azt jelzi, hogy ez "mutatók" ("pointerek") tömbje. Valójában minden tömbnév mutató, ezért ez szükséges egy tömb tömbjének létrehozásához. A mutatók a C++ ezoterikusabb részei közé tartoznak a kezdők számára, de nem szükséges részletesen megérteni a mutatókat, hogy itt hatékonyan használhassuk őket.