strings c with examples
Intenziven pogled na osnove godal v jeziku C ++.
V tej seriji C ++ smo do zdaj večinoma razpravljali o numeričnih nizih v jeziku C ++. V tej vadnici bomo razpravljali o manipulaciji z nizi znakov, ki jih preprosto imenujemo 'Strings'.
Niz znakov je večinoma niz v slogu C, ki ga podpira C ++. Poleg nizov znakov v slogu C podpira C ++ tudi niz nizov “std :: string”. Nadalje bomo v tej vadnici razpravljali o vrstah nizov, pa tudi o razliki med njimi in o programiranju vsake vrste v jeziku C ++.
=> Oglejte si celoten seznam vadnic za C ++ v tej seriji.
Kaj se boste naučili:
Niz znakov (nizi v slogu C)
Niz slova c je niz znakov, ki se zaključi z ničelnim znakom ' 0'. Zato lahko definiramo polje tipa char in dimenzije ali velikost nizov, nato pa ga lahko inicializiramo v niz ali polje znakov.
Upoštevajte, da je prevajalnik tisti, ki zaključi niz z ničelnim znakom, zato, če zaporedje znakov inicializiramo z nizom (v dvojnem narekovaju “”), moramo med razglasitvijo velikosti polja pustiti dodaten prostor za ničelni znak. .
Vzemimo nekaj primerov deklariranja in inicializacije nizov znakov.
char firstStr() = 'This is Cstyle string'; char secStr(100) = {'s','o','f','t','w','a','r','e',' ','t','e','s','t','i','n','g',' ','h','e','l','p',' '}; char thirdStr() = {'h','e','l','l','o',' '};
Vse zgornje definicije so veljavne definicije nizov v slogu C v jeziku C ++. Upoštevajte, da lahko navedemo dejansko velikost ali pa pustimo velikost prazno, tako da lahko prevajalnik sprejme velikost, odvisno od niza, ki smo ga inicializirali.
Vzemimo Primer branja in pisanja nizov znakov v jeziku C ++
Spodaj je prikazan preprost program, ki niz prebere s pomočjo cin in ga izpiše s pomočjo cout.
#include #include using namespace std; int main() { char firstStr(100); cin>>firstStr; cout<<'you entered : '< Izhod 1:
SoftwareTestingHelp.com
ste vnesli: SoftwareTestingHelp.com
Izhod 2:
anime spletna mesta za brezplačno gledanje anime
To je niz v slogu C.
ste vnesli: To
Če primerjamo oba izhoda, vidimo, da je bil ob vnosu prvega niza »SoftwareTestingHelp.com« natisnjen takšen, kot je.
Toda v drugem izhodu, čeprav smo niz vnesli kot »To je niz v slogu C«, je bil rezultat le »To«.
Razlika v izhodu je v tem, ker je operator >> >>, ki se uporablja za branje niza, obravnavan kot funkcija 'scanf' v C, ki bere samo do najdenega prostora. Zato je 'cin with >>' primeren za branje nizov znakov brez prostora.
Medtem ko je bil odkrit drugi izhodni prostor, ga je funkcija cin vzela za konec niza in prebrala samo prvo besedo.
Za branje celotne vrstice znakov, vključno s presledki, C ++ uporablja funkcijo 'get'.
Primer programa, ki uporablja funkcijo get, je prikazan spodaj:
#include #include using namespace std; int main() { char firstStr(100); cin.get(firstStr,100); cout<<'you entered : '< Izhod:
To je softwareTestinghelp.com
ste vnesli: To je softwareTestinghelp.com
Kot je prikazano v primeru , get funkcija cin uporablja dva argumenta. Prvi argument je spremenljivka nizov znakov, v kateri je treba prebrati niz, drugi argument pa je največja velikost polja.
Strune v slogu C podpirajo tudi številne funkcije nizov, ki uporabnikom omogočajo manipulacijo z nizi. Te funkcije so definirane v glavi “cstring”.
Spodaj predstavljamo tabelo, v kateri so naštete različne funkcije nizov, s katerimi je mogoče upravljati nize v slogu C.
Ne Funkcija Argumenti Opis 1. strcpy s1, s2 Kopira niz s2 v niz s1 dva strcat s1, s2 Doda ali združi niz s2 na konec niza s1 3. strlen s1 Vrne dolžino niza s1 4. strcmp s1, s2 Vrne 0: s1 in s2 sta enaka
<0:s1 > 0: s1> s2 5. strchr s1, pogl Vrne kazalec na prvo pojavitev znaka ch v nizu s1 in niz od tam naprej 6. strstr s1, s2 Vrne prvi pojav niza s2 v nizu s1
Naslednji program prikazuje uporabo nekaterih teh funkcij v jeziku C ++:
#include #include using namespace std; int main() { char firstStr(50) = 'This is softwareTestingHelp.com'; char secStr(50) = 'a testing platform'; int len = strlen(firstStr); cout<<'Length of firstStr : '< Izhod:
Dolžina firsttr: 31
Rezultatni niz (secStr): preskušanje programske opreme
Primerjava firstStr in secStr: -31
Združeni secStr: testiranje programske opreme za vas
Prvi pojav i v firststr at: s je softwareTestingHelp.com
Nizni razred v jeziku C ++
Niz v jeziku C ++, ki ga definira razred »std :: string«, je prikaz toka znakov v predmet. Z drugimi besedami, razred String je zbirka nizovnih predmetov. Ta razred nizov je del imenskega prostora std in je definiran v glavi 'string.h'.
najboljše spletno mesto za prenos mp3 za android
Pogovorimo se o nekaterih osnovnih razlikah med razredom nizov in nizom znakov.
- Medtem ko so nizi znakov, o katerih smo razpravljali zgoraj, v času prevajanja statično dodeljeni, so nizi predmeti in jih je zato mogoče dinamično dodeliti.
- Ker so polja znakov statična, jih po definiciji ni mogoče skrčiti ali razširiti. Če imamo torej niz znakov velikosti 100 in sem ga inicializiral na besedo 'Hello', potem ostane preostali prostor zapravljen.
Char mystr (100) = 'Pozdravljeni';
Tukaj je zapravljenih preostalih 95 lokacij.
V nasprotju s tem so nizni predmeti dinamične narave in bodo zavzeli natančen prostor za vrednost.
- Niz znakov je hitrejši, nizi pa počasnejši.
- Nizi znakov imajo na sebi nekaj funkcij, ki lahko z njimi manipulirajo. Razred String ima številne funkcije, vključno s funkcijami iteratorja.
To je nekaj osnovnih razlik med nizom znakov in razredom nizov.
Nato bomo videli nekaj primerov niza razreda skupaj z nekaterimi osnovnimi operacijami, ki se izvajajo na objektih niza razreda.
Primer za razglasitev in inicializiranje razreda niza.
#include #include using namespace std; int main() { string str='This is string object in C++'; cout<<'
String entered is :'<V zgornjem primeru smo deklarirali in inicializirali nizni objekt z uporabo razreda 'string'. To je preprost primer. Zdaj imamo program za branje niza od uporabnika in tudi predstavitev nekaj funkcij nizov, vključno z iskanjem dolžine in primerjavo dveh nizov.
#include #include using namespace std; int main() { string str; cout<<'Input the string
'; getline(cin,str); cout<<'
String entered is :'< Izhod:
Vnesite niz
SoftwareTestingHelp
Vneseni niz je: SoftwareTestingHelp
Dolžina niza str je: 19
Dva niza sta enaka
Nov str1: SoftwareTestingHelp.com
vrne niz nizov v javi
str nova dolžina: 0
V zgornji ilustraciji smo za manipulacijo z nizi uporabili številne funkcije nizov. Po razglasitvi niza uporabimo funkcijo »getline« razreda nizov za branje niza iz standardnega vhoda.
Ko preberemo niz, poiščemo njegovo dolžino s pomočjo funkcije “length”. Če moramo primerjati dva niza, da ocenimo, ali sta enaka ali ne, lahko uporabimo funkcijo »primerjava« razreda nizov. Če funkcija vrne 0, sta potem niza enaka, sicer funkcija vrne vrednost, ki ni nič.
Še ena funkcija je dodajanje drugega niza na konec obstoječega niza. To je funkcija »dodajanje«. V tem primeru dodamo '.com' že obstoječemu nizu str1 z vrednostjo 'testiranje programske opreme'.
Zadnja funkcija v primeru je funkcija clear, ki se uporablja za čiščenje vsebine predmeta klica. V tem primeru počistimo vsebino predmeta str, tako da njegova dolžina postane 0.
Zaključek
V tej vadnici smo zajeli niz znakov, ki se imenuje tudi nizi v slogu C, skupaj z osnovami razreda nizov. Razred String ima več pripomočkov, kot je razred iteratorja, saj gre za razred vsebnika.
Več o razredu nizov in njegovih funkcijah bomo videli v naših prihajajočih vadnicah STL !!
=> Obiščite tukaj, če si želite ogledati serijo C ++ za vse.
Priporočeno branje
- Razvrstitev lupine v C ++ z primeri
- Datum in čas v C ++ z primeri
- Java String z vmesnikom String Buffer in String Builder
- Izbirno razvrščanje v C ++ z primeri
- Funkcije niza Python
- Vadnica Python DateTime s primeri
- Izreži ukaz v Unixu s primeri
- 70+ NAJBOLJŠIH vaj za C ++ za BREZPLAČNO učenje C ++ programiranja