strings c with examples
Intenzivan pogled na osnove žica u C ++-u.
U ovoj C ++ seriji, do sada, uglavnom smo raspravljali o numeričkim nizovima u C ++. U ovom uputstvu razgovarat ćemo o manipulaciji s nizovima znakova koje jednostavno nazivamo 'žice'.
Niz znakova uglavnom je niz u stilu C koji C ++ podržava. Uz nizove znakova u stilu C, C ++ također podržava klasu nizova “std :: string”. Dalje, u ovom uputstvu raspravit ćemo o vrstama nizova kao i o razlici između njih te o programiranju svake vrste u jeziku C ++.
=> Pazite na cjelovit popis tutorijala za C ++ u ovoj seriji.
Što ćete naučiti:
Nizovi znakova (žice u stilu C)
Niz u stilu c je niz znakova koji se završava nulom znaka ' 0'. Stoga možemo definirati niz tipa char i dimenzije ili veličinu nizova, a zatim ga možemo inicijalizirati u niz ili niz znakova.
Imajte na umu da je kompajler taj koji završava niz s null znakom, pa ako niz znakova inicijaliziramo nizom (u dvostrukom navodniku “”), tada trebamo ostaviti dodatni prostor za null znak dok deklariramo veličinu niza .
Uzmimo nekoliko primjera deklariranja i inicijalizacije nizova znakova.
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',' '};
Sve gore navedene definicije su valjane definicije niza u C stilu u C ++. Imajte na umu da možemo deklarirati stvarnu veličinu ili ostaviti veličinu praznom kako bi kompajler mogao prilagoditi veličinu ovisno o nizu koji smo inicijalizirali.
Uzmimo jedan Primjer čitanja i pisanja niza znakova u C ++
Dolje je dat jednostavan program koji čita niz pomoću cin-a i izbacuje ga pomoću cout-a.
#include #include using namespace std; int main() { char firstStr(100); cin>>firstStr; cout<<'you entered : '< Izlaz 1:
SoftwareTestingHelp.com
unijeli ste: SoftwareTestingHelp.com
Izlaz 2:
Ovo je niz u stilu C
unijeli ste: Ovo
Ako usporedimo oba izlaza, vidimo da je kada smo unijeli prvi niz 'SoftwareTestingHelp.com', ispisan takav kakav jest.
Ali u drugom izlazu, iako smo niz unijeli kao 'Ovo je niz u stilu C', izlaz je bio samo 'Ovo'.
Razlika u izlazu je zato što se operator >> >> cin koji se koristi za čitanje niza tretira kao funkcija 'scanf' funkcije C, koja čita samo do nađenog prostora. Stoga je 'cin s >>' prikladan za čitanje nizova znakova bez razmaka.
kako stvoriti računalni program za početnike
Dakle, dok je pronađen drugi izlazni prostor, funkcija cin ga je uzela kao kraj niza i pročitala samo prvu riječ.
Da bi pročitao čitav redak znakova, uključujući razmake, C ++ koristi funkciju 'get'.
Primjer programa koji koristi funkciju get prikazan je u nastavku:
#include #include using namespace std; int main() { char firstStr(100); cin.get(firstStr,100); cout<<'you entered : '< Izlaz:
Ovo je softwareTestinghelp.com
unijeli ste: Ovo je softwareTestinghelp.com
Kao što je prikazano u primjeru , get funkcija cin koristi dva argumenta. Prvi je argument varijabla polja znakova u kojoj se niz treba čitati, dok je drugi argument maksimalna veličina polja.
Žice u stilu C također podržavaju brojne funkcije nizova koje omogućuju korisnicima manipulaciju žicama. Te su funkcije definirane u zaglavlju “cstring”.
U nastavku donosimo tablicu u kojoj su navedene razne funkcije nizova koje se mogu koristiti za manipulaciju žicama u stilu C.
Nemoj Funkcija Argumenti Opis 1 strcpy s1, s2 Kopira niz s2 u niz s1 dva strcat s1, s2 Dodaje ili spaja niz s2 na kraj niza s1 3 strlen s1 Vraća duljinu niza s1 4 strcmp s1, s2 Vraća 0: s1 i s2 su isti
<0:s1 > 0: s1> s2 5 strchr s1, pogl Vraća pokazivač na prvo pojavljivanje znaka ch u nizu s1 i niz od tamo nadalje 6 strstr s1, s2 Vraća prvo pojavljivanje niza s2 u nizu s1
Sljedeći program prikazuje upotrebu nekih od ovih funkcija u 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 : '< Izlaz:
Duljina prvog mjesta: 31
Rezultantni niz (secStr): testiranje softvera
Usporedba firstStr i secStr: -31
Spojeni secStr: testiranje softvera za vas
Prva pojava i u firststr na: s je softwareTestingHelp.com
Niz klase na C ++
Niz u C ++-u koji je definiran klasom 'std :: string' predstavlja prikaz toka znakova u objekt. Drugim riječima, klasa String je zbirka objekata u nizu. Ova klasa nizova dio je std prostora imena i definirana je u zaglavlju 'string.h'.
Razmotrimo neke od osnovnih razlika između klase niza i niza znakova.
- Iako su nizovi znakova o kojima smo gore razgovarali statički dodijeljeni tijekom vremena kompajliranja, nizovi su objekti i stoga se mogu dinamički dodijeliti.
- Kako su nizovi znakova statične prirode, ne mogu se smanjiti ili proširiti jednom definiranim. Dakle, ako imamo niz znakova veličine 100, a ja sam ga inicijalizirao riječju 'Hello', preostali prostor se gubi.
Char mystr (100) = 'Zdravo';
Ovdje se troši preostalih 95 mjesta.
Suprotno tome, string objekti su dinamične prirode i zauzet će točan prostor za vrijednost.
- Niz znakova brži je u izvedbi, dok su nizovi sporiji.
- Niz znakova ima nekoliko funkcija koje djeluju na njih koje mogu njima upravljati. String klasa ima brojne funkcije, uključujući funkcije iteratora.
Ovo su neke od osnovnih razlika između polja znakova i klase objekata niza.
Dalje, vidjet ćemo nekoliko primjera klase stringa zajedno s nekim osnovnim operacijama koje se izvode na objektima klase stringa.
Primjer za deklariranje i inicijalizaciju klase nizova.
#include #include using namespace std; int main() { string str='This is string object in C++'; cout<<'
String entered is :'<U gornjem primjeru deklarirali smo i inicijalizirali objekt niza pomoću klase 'string'. Ovo je jednostavan primjer. Ajmo sada imati program za čitanje niza od korisnika, a također ćemo pokazati nekoliko funkcija niza, uključujući pronalaženje duljine i usporedbu dva niza.
#include #include using namespace std; int main() { string str; cout<<'Input the string
'; getline(cin,str); cout<<'
String entered is :'< Izlaz:
Unesite niz
SoftwareTestingHelp
Uneseni niz je: SoftwareTestingHelp
Duljina niza str je: 19
Dvije žice su jednake
Novi str1: SoftwareTestingHelp.com
str nova duljina: 0
U gornjoj ilustraciji koristili smo brojne funkcije niza za manipulaciju žicama. Nakon deklaracije niza koristimo funkciju 'getline' klase niza za čitanje niza iz standardnog ulaza.
Jednom kada čitamo niz, pronalazimo njegovu duljinu pomoću funkcije 'length'. Ako trebamo usporediti dva niza kako bismo procijenili jesu li jednaki ili ne, možemo koristiti funkciju 'usporedi' klase nizova. Ako funkcija vrati 0, tada su dva niza jednaka, u suprotnom funkcija vraća vrijednost koja nije nula.
Još jedna funkcija je dodavanje drugog niza na kraj postojećeg niza. Ovo je funkcija 'dodavanja'. U ovom primjeru dodamo '.com' već postojećem nizu str1 s vrijednošću 'testiranje softvera'.
Posljednja funkcija u primjeru je funkcija clear koja se koristi za brisanje sadržaja pozivajućeg objekta stringa. U ovom primjeru brišemo sadržaj str objekta tako da njegova duljina postane 0.
Zaključak
U ovom smo tutorijalu pokrili niz znakova koji se također naziva nizovi u stilu C, zajedno s osnovama klase nizova. String klasa dolazi s više uslužnih programa poput iteratora jer je to klasa spremnika.
Više o klasi klasa i njezinim funkcijama vidjet ćemo u našim nadolazećim tutorijalima za STL !!
=> Posjetite ovdje da biste vidjeli C ++ seriju treninga za sve.
Preporučena literatura
- Razvrstavanje ljuske na C ++ s primjerima
- Funkcije datuma i vremena u C ++ s primjerima
- Java string sa String Buffer-om i String Builder Tutorial
- Sortiranje odabira na C ++ s primjerima
- Python string funkcije
- Python DateTime Vodič s primjerima
- Izreži naredbu u Unixu s primjerima
- 70+ NAJBOLJIH Vodiča za C ++ za BESPLATNO učenje C ++ programiranja