[Data Types] → string
Popis :
Textové reťazce môžu byť reprezentované dvoma spôsobmi. môžete použiť dátový typ String alebo môžete vytvoriť reťazec z poľa typu char a ukončiť ho hodnotou null.
Syntax :
Platné deklarácie pre reťazce:
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[] = “arduinoUno”;
char Str5[8] = “arduinoUno”;
char Str6[15] = “arduino”;
Možnosti deklarovania reťazcov :
- Deklarujte pole znakov bez jeho inicializácie ako v Str1
- Deklarujte pole znakov (s jedným znakom navyše) a kompilátor pridá požadovaný nulový znak, ako v Str2
- Explicitne pridajte znak null, Str3
- Inicializujte reťazcovou konštantou v úvodzovkách; kompilátor nastaví veľkosť poľa tak, aby sa zmestilo do reťazcovej konštanty a ukončujúceho nulového znaku, Str4
- Inicializujte pole s explicitnou veľkosťou a reťazcovou konštantou Str5
- Inicializujte pole a ponechajte priestor navyše pre väčší reťazec Str6
Nulové ukončenie :
Vo všeobecnosti sú reťazce ukončené znakom null (kód ASCII 0). To umožňuje funkciám (ako Serial.print()) zistiť, kde je koniec reťazca. V opačnom prípade by pokračovali v čítaní nasledujúcich bajtov pamäte, ktoré v skutočnosti nie sú súčasťou reťazca. To znamená, že váš reťazec musí mať miesto pre jeden znak viac ako text, ktorý chcete, aby obsahoval. Preto Str2 a Str5 musia mať osem znakov, aj keď „arduino“ je len sedem – posledná pozícia sa automaticky vyplní nulovým znakom. Str4 sa automaticky nastaví na osem znakov, jeden pre nulu navyše. V Str3 sme sami explicitne zahrnuli nulový znak (napísaný ‘\0’).
Jednoduché úvodzovky alebo dvojité úvodzovky? :
Reťazce sú vždy definované v dvojitých úvodzovkách (“Abc”) a znaky sú vždy definované v jednoduchých úvodzovkách (‘A’).
(long string) :
Príklad :
char myString[] = "Toto je prvý riadok"
" toto je druhý riadok"
"atď.";
Pole reťazcov :
Pri práci s veľkým množstvom textu, ako je napríklad projekt s LCD displejom, je často vhodné nastaviť pole reťazcov. Pretože samotné reťazce sú polia, toto je vlastne príklad dvojrozmerného poľa. V nižšie uvedenom kóde hviezdička za údajovým typom char „char*“ označuje, že ide o pole „pointers“. Všetky názvy polí sú v skutočnosti pointers, takže je to potrebné na vytvorenie poľa polí. pointers sú jednou z ezoterickejších častí C++ pre začiatočníkov, ale nie je potrebné podrobne rozumieť pointers, aby ste ich tu mohli efektívne používať.
Príklad kódu :
char *myStrings[] = {"Toto je reťazec 1, "Toto je reťazec 2", "Toto je reťazec 3",
"Toto je reťazec 4", "Toto je reťazec 5", "Toto je reťazec 6"
};
void setup() {
Serial.begin(9600);
}
void loop() {
for (int i = 0; i < 6; i++) {
Serial.println(myStrings[i]);
delay(500);
}
}
Stringobject :
- String()
Pridaj komentár