Sissejuhatus keelte massiivi C ++
C ++-s on palju andmetüüpe, näiteks täisarv, ujuk, märk, string. Stringi andmetüüp on märkide massiiv, mis lõpeb nulliga ('\ 0'), mis tähistab massiivi või stringi lõppu. C-l polnud neid andmetüüpi stringi, mille tõttu pidime stringi moodustamiseks moodustama tähemärkide massiivi. C ++ -s on meil sisseehitatud andmetüüp.
Märgi näide: 'a' või 'A'
Näide stringist (C ++): “English”
String: märkide massiiv: string (0) = 'E'
Keel (1) = 'n'
String (2) = 'g'
String (3) = 'l'
String (4) = 'i'
String (5) = 's'
String (6) = 'h'
String (7) = '\ 0'
Stringe saab deklareerida, kirjutada ja printida otse C ++ keeles. Samuti saab stringi igale tähemärgile pääseda indeksi abil, mis sarnaneb massiivi indekseerimisega. Kui loeme stringi puhul, kui me loeme tähemärgi kujul skaneerimise () abil, siis peatab see stringi või lugemisfunktsiooni, kui ta leiab esimese tühiku. Selle vältimiseks saab kasutada funktsiooni gets (). See loeb terve rea ja lõpetab lugemise ainult siis, kui kasutaja vajutab nuppu "Enter".
Stringimassiiv C ++-s mitme stringi massiivi
Stringide massiiv või stringide massiiv on mitme stringi massiiv. Selle võib kuulutada järgmiselt:
string Animals(4) = ("Elephant", "Fox", "Lion", "Tiger");
Terve stringi massiivi printimiseks võib silmuse jaoks kasutada järgmist:
Kood:
for(int i = 0; i<4; i++) (
cout << Animals(i) << endl;
)
Väljund:
Kuidas pääseda elementide juurde keelte massiivist?
Stringide massiiv sarnaneb kahemõõtmelise massiiviga. Esimene mõõde või indeks täpsustab massiivilaadse esimese sõna / stringi või 2. sõna / stringi stringi indeksi. Seevastu teine mõõde või indeks täpsustab, mis tähemärgis selles konkreetses sõnas / stringis on.
Selgitage seda selge näitega:
Animals(2)(1) = 'i'
Ülaltoodud näites täpsustab esimene indeks '2', et see on massiivi teine string: "Tiger". Teises indeksis „1” täpsustatakse, et see on sõna „Tiiger” teine täht või register 1. Kahemõõtmelise indekseerimise abil saab iga stringi iga tähemärgi hõlpsalt juurde pääseda.
Stringi massiivi jaotamine või määratlemine
Stringide massiivi jaotamiseks on erinevaid meetodeid:
1. 2D massiiv Char (mida saab kasutada ka C-s)
char Nimi (maksimaalne elementide arv) (iga elemendi maksimaalne suurus)
värvitoon (4) (8) = (“sinine”, “punane”, “valge”, “must”)
Kood:
int main() (
char color(4)(8) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Väljund :
Massiivi värv on fikseeritud suurusega, see tähendab, et fikseeritakse elementide arv ja fikseeritakse ka elemendi tähtede arv või suurus. Elementide maksimaalne arv, mida saab määratleda, on 4 ja igaüks neist võib sisaldada maksimaalselt 8 tähemärki, kõige rohkem. See on peamine takistus 2d märkide massiivis.
2. Massiiv märksõnaga String (võimalik ainult C ++ korral)
stringi nimi (maksimaalne elementide arv)
stringi värv (4) = (“sinine”, “punane”, “valge”, “must”)
Kood:
int main() (
string color(4) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Väljund :
Siin fikseeritakse ainult üks mõõde, kui kuulutame selle stringimassiiviks. Ainult elementide arv on fikseeritud. Elemendi suurus võib varieeruda. Kuid teise mõõtme täpsustamisel saame vastava stringi konkreetsele tähemärgile juurde pääseda või seda kuvada.
3. Vektorite kasutamine rakenduses C ++
vektori nimi
vektori värv
Kood:
#include
#include
using namespace std;
int main()
(
vector color;
color.push_back("blue");
color.push_back("red");
color.push_back("white");
color.push_back("black");
for(int i = 0; i cout << color(i) << endl;
)
return 0;
)#include
#include
using namespace std;
int main()
(
vector color;
color.push_back("blue");
color.push_back("red");
color.push_back("white");
color.push_back("black");
for(int i = 0; i cout << color(i) << endl;
)
return 0;
)
Väljund:
Siin eraldatakse see dünaamiliselt, mälu eraldatakse hunnikust. Suurus pole fikseeritud. Elementide arvu järgi võib see suureneda või väheneda. Kui stringi massiivi dünaamiliselt eraldatakse, kasutades käsku “new”, peame eraldatud mälu käsitsi eraldama. Kuid vektori puhul pole see vajalik. Ümberjaotamine on vektoris võimalik, samal ajal kui dünaamiliselt eraldatud massiivis see pole võimalik.
4. Stringimassiivi edastamine funktsioonis
Stringmassiivi saab edasi anda funktsioonile, mis sarnaneb jaotisega Kuidas massiivi läbida.
Kood:
#include
#include
using namespace std;
void display(string s(5))(
cout << s(2) ;
)
int main() (
string str(5) = ("Good", "Bad", "Positive", "Negative");
display(str);
)
Väljund :
Siin edastame stringi massiivi str parameetrina funktsioonile “display”, mis prindib stringi massiivi 3. elemendi (“Positiivne”).
5. Toimetamine keelpillide massiivist teise
Stringimassiivist teise kopeerimiseks peaksime kopeerima iga elemendi eraldi, kuid tervet massiivi ei saa ühe võttega kopeerida.
Kood:
int main() (
string str(4) = ("Good", "Bad", "Positive", "Negative");
string s(4);
// s = str; -à This line gives error as the whole array cannot be copied at a single go
// It can be copied as shown below
for( int i=0; i<4; i++) (
s(i) = str(i);
)
for(int i=0; i<4; i++) (
cout << "The element " << i+1 << " of copied array = " << s(i) << " is same as
the corresponding element in main array which is " << str(i) << endl;
)
)
Veaväljund:
Väljund:
Kui proovisime kogu peamist stringimassiivi (str) kopeerida teise stringi massiivi (desse), tekkis meil tõrge (nagu on näidatud ekraanipildil1), samal ajal kui kopeerisime selle elemendi kaupa, siis str kopeeriti s-i ja saime seda kontrollida nähes teist väljundi ekraanipilti.
Järeldus
Seega on string andmetüüp, mis koosneb tähemärkide massiivist ja esineb ainult C ++ -s. C-s kuulutasime me tavapäraselt massiivina. Stringide massiiv on massiiv, mis koosneb paljudest stringidest. Staatiliselt või dünaamiliselt deklareerituna on see kindla suurusega ja kui see on vektorina deklareeritud, siis suurus ei ole fikseeritud. Igale elemendile ja konkreetse elemendi tähemärgile saab stringi massiivi indekseerimise abil hõlpsasti juurde pääseda.
Soovitatavad artiklid
See on juhend String Array jaoks C ++. Siin arutleme, kuidas liigutada elementi stringi massiivi C ++-is ja stringi massiivi jaotamist C ++-s. Lisateavet leiate ka meie muudest seotud artiklitest -
- Keelpill Pythonis
- StringBuffer Java-s
- Pythoni keelte funktsioonid
- Massiivid C ++
- Sissejuhatus keelpillide massiivi C #
- C ++ 11 peamist funktsiooni ja eelist
- String vs StringBuilder kaheksa parimat võrdlust
- Massiivi töö Unixis koos süntaksiga?