Leírás
A szöveges karakterek kétféle módon ábrázolhatók. Használhatja a String adattípust, amely a fordító részét képezi a 0019-es verziótól, vagy létrehozhat egy karakterláncot egy char típusú tömbből. Ez az oldal az utóbbi módszert ismerteti. A String objektummal kapcsolatos további részletek, a String() oldalon találhatóak.
Szintaxis
Az alábbiakban felsorolásra kerül, hogy milyen módszerekkel lehet megadni a karakterláncot:
Lehetséges megadási módok
- inicializálás nélkül, karakter tömbként mint az Str1-ben
- a tömb hosszúságával és a tömb tagjainak megadásával, mint az Str2-nél (a meg nem adott helyeken null-karakter lesz
- az Str3 ugyan az, mint az Str2, de itt külön adjuk hozzá a null karaktert, nem a fodító fogja végrehajtani
- idézőjelek között felsorolt karakterekkel, ilyenkor a tömb nagyságát a fordító automatikusan meghatározza
- az Str5 esetében a méret adott, a végén egy null karakter lesz
- az Str6 esetében egy jóval nagyobb tömböt hoztunk létre
Null karakter
Általában a karakterláncokat null karakterrel fejezzük be (ASCII kód 0). Ez lehetővé teszi a függvényeknek (például a Serial.print ()), hogy megmondják, hol van egy karakterlánc vége. Ellenkező esetben folytatnák a memória későbbi byte-jainak olvasását, amelyek valójában nem képezik a karakterlánc részét.
Ez azt jelenti, hogy a tömböt egyel több tagúra kell létrehozni, mint a szöveg, amelyet azt szeretne tárolni benne. Ezért kell az Str2 és az Str5 esetében nyolc karakterből állni, annak ellenére, hogy az "arduino" csak hét - az utolsó pozíció automatikusan null karakterrel van kitöltve. Az Str4 automatikusan nyolc karakterre lesz méretezve, egy az extra null számára. Az Str3-ban saját magunk írtuk a végére a null karaktert ('\ 0').
Vegye figyelembe, hogy lehetséges egy karakterlánc végleges null karakter nélkül is (például ha a Str2 hosszát nyolc helyett hétként határozta meg). Ez hibás működést okoz a legtöbb karakter láncot használó funkciónál, ezért ezt el kell kerülni. Ha furcsán viselkedik egy funkció (a karakterláncon kívüli karakterekkel működik), ez a probléma lehet a háttérben.
Egyszeres vagy dupla idézőjel?
A karakterláncokat mindig kettős idézőjelekben ("Abc") határozzuk meg, a karaktereket mindig egy idézőjelekben ('A').
Hosszú karakterláncok megadása
A következőképpen lehet elvégezni:
String tömbök
Ha nagy mennyiségű szöveget használ, például LCD-kijelzővel dolgozik, gyakran kényelmes előre megadni 1-1 mondatot, tömbökbe szervezve. Mivel maguk a karakterláncok tömbök, valójában ez egy kétdimenziós tömb példája.
Az alábbi kódban a „char *” adattípus utáni csillag azt jelzi, hogy ez egy „pointerek” tömbje. Az összes tömbnév valójában pointer (mutató), tehát erre tömb tömb létrehozásához van szükség. A mutatók a kezdők számára a C ++ egyik ezoterikusabb része, de a hatékony felhasználáshoz nincs szükség a mutatók részletes megértésére.
Példakód
Lásd még
String()
array
bool
boolean
byte
char
double
float
int
long
short
size_t
unsigned char
unsigned int
unsigned long
void
word
PROGMEM