Kako postaviti pametne telefone i računala. Informativni portal

Usporedba likova u C. Rad sa nizovima

Deklariranje nizova

Niz u C-u je jednodimenzionalni niz znakova. posljednji elementšto je znak za kraj retka - nula (niz koji završava nulom, odnosno NULL završeni niz).

Obavijest varijabilni tip niz u C-u moguć je na tri načina, od kojih dva inicijaliziraju niz u trenutku deklaracije.

Prvi način:

Deklaracije nizova znakova (ne zaboravite dodati prostor za završetak nule):

Char s;

Drugi način:

Dodijeli varijabli niza početna vrijednost(u ovom slučaju, kompajler može sam izračunati duljinu niza):

Char s = "Primjer inicijalizacije niza";

Desno od znaka dodjele je konstanta niza. Nula ('\0') se automatski dodaje na kraj retka. Konstante niza znakova smještene su u statičku memorijsku klasu.

Treći način:

Implicitna indikacija da se niz koristi. Lijevo od znaka dodjele nalazi se pokazivač na simbol:

Char *s="Druga opcija inicijalizacije";

Varijabla s bit će pokazivač na tu lokaciju u RAM memorija, gdje se nalazi konstanta niza. U ovom obliku snimanja laži potencijalna greška, što znači da se pokazivač na znak često naziva niz. Unos u nastavku je samo pokazivač na znak, budući da nema predviđenog prostora za niz:

Char *s;

Unos niza sa standardnog uređaja za unos (tipkovnica)

Postoji skup funkcija za rad sa nizovima. Za unos sa standardnog ulaznog uređaja (tipkovnice) najčešće se koriste funkcije knjižnice iz standardnog ulazno/izlaznog modula: skenirati I dobiva.

Za unos niza pomoću funkcije skenirati, koristi format « %s» , i imajte na umu da se znak adrese ne koristi prije identifikatora retka « & » , budući da je jednodimenzionalni niz već predstavljen pokazivačem na njegov početak:

Scanf("%s", s);

Funkcija dobiva()čita znakove dok ne dođe do znaka novog retka. Funkcija prihvaća sve znakove do znaka novog retka, ali ga ne uključuje. Završna nula ('\0') dodaje se na kraj retka. Funkcija dobiva() postavlja niz znakova pročitanih s tipkovnice u parametar tipa string i vraća pokazivač na taj niz (ako je operacija bila uspješna), ili NULL (u slučaju greške). U donjem primjeru, ako se operacija uspješno završi, dva identične linije:

#uključi int main() ( char s; char *p; p=gets(s); printf(" \n Niz %s je unesen.",s); if (p) printf(" \n Niz %s je bio uneseno.", p); return 0; )

Usput, napomenimo da se gets funkcija često koristi za unos bilo kojeg podatka s tipkovnice kao niza u svrhu daljnje konverzije sscanf funkcijom u željeni format ili za preliminarnu analizu ulaznih podataka, na primjer:

#uključi #uključi #uključi int main() ( char s; int x, err; do ( printf(" \n Unesite cijeli broj -> "); gets(s); err=sscanf(s, "%d",&x); if (err !=1) printf(" \n Pogreška pri unosu."); ) while (err!=1); printf("\n Unesen cijeli broj -> %d", x); return 0; )

Ispis nizova na standardni izlaz (zaslon monitora)

Za izlaz nizova u standardni uređaj izlaz (zaslon monitora) mogu se koristiti dvije funkcije printf I stavlja. U printf funkcije"%s" se prosljeđuje kao format. Pogodnost korištenja ove funkcije je u tome što osim niza, možete odmah prikazati podatke drugih vrsta. Značajka Značajka stavlja je da se nakon ispisivanja retka automatski prelazi na sljedeći redak.

Funkcije za rad sa stringovima

Za pretvorbu nizova u jeziku C dostupna je biblioteka nizova. Svaka funkcija ima vlastiti format snimanja (prototip).

U ovom se članku raspravlja o najčešće korištenim funkcijama. - čitati

Primjer programa (listing) koji rade sa stringovima

34

--- Vodič za C# --- Žice

Sa stajališta uobičajenog programiranja, niz vrsta podataka string jedan je od najvažnijih u C#. Ovaj tip definira i podržava znakovne nizove. U brojnim drugim programskim jezicima, niz je niz znakova. A u C#, nizovi su objekti. Stoga je tip niza referentni tip.

Izgradnja nizova

Najjednostavniji način konstruiranja znakovnog niza je korištenje string literala. Na primjer, u sljedeći redak koda, varijabli reference niza str dodjeljuje se referenca na literal niza:

String str = "Primjer niza";

U u ovom slučaju varijabla str se inicijalizira nizom znakova "Primjerni niz". Objekt tipa string također se može stvoriti iz niza tipa char. Na primjer:

Chararray = ("e", "x", "a", "m", "p", "l", "e"); string str = novi niz(chararray);

Nakon što se objekt niza stvori, može se koristiti bilo gdje gdje trebate niz teksta unutar navodnika.

Postojanost niza

Čudno je da se sadržaj objekta tipa string ne može promijeniti. To znači da jednom kreiran niz znakova ne može se mijenjati. Ali ovo ograničenje doprinosi učinkovitijoj implementaciji nizova znakova. Stoga se ovaj naizgled očiti nedostatak zapravo pretvara u prednost. Stoga, ako je niz potreban kao varijacija postojećeg niza, tada bi se u tu svrhu trebao stvoriti novi niz koji sadrži sve potrebne promjene. A budući da se neiskorišteni string objekti automatski skupljaju kao smeće, ne morate čak ni brinuti o sudbini nepotrebnih stringova.

Međutim, treba naglasiti da su varijabilne reference na stringove (odnosno objekte tipa string) podložne promjenama, te se stoga mogu odnositi na drugi objekt. Ali sadržaj samog string objekta ne mijenja se nakon što je kreiran.

Pogledajmo primjer:

Static void addNewString() ( string s = "Ovo je moj potez"; s = "Ovo je novi potez"; )

Prevedimo aplikaciju i učitajmo rezultirajući sklop u uslužni program ildasm.exe. Slika prikazuje CIL kod koji će se generirati za metodu void addNewString():

Imajte na umu da postoje brojni pozivi operacijskom kodu ldstr (string load). Ovaj opcijski kod CIL ldstr izvodi učitavanje novog objekta niza na upravljanu gomilu. Kao rezultat toga, prethodni objekt koji je sadržavao vrijednost "Ovo je moj udar" na kraju će biti skupljen u smeće.

Rad sa nizovima

U klasi System.String postoji niz metoda za određivanje duljine znakovnih podataka, traženje podniza u trenutna linija, pretvaranje znakova iz velikih u mala slova i obrnuto itd. Zatim ćemo detaljnije pogledati ovu klasu.

Svojstvo klase polja, indeksatora i niza

U klasa String definirano je jedno polje:

Javni statički niz samo za čitanje Prazan;

Prazno polje označava prazan niz, tj. niz koji ne sadrži nijedan znak. Ovo se razlikuje od prazne reference niza, koja se jednostavno postavlja na nepostojeći objekt.

Osim toga, klasa String definira jedan indekser samo za čitanje:

Javno označi ovo ( get; )

Ovaj indeksator vam omogućuje da dobijete znak na određenom indeksu. Indeksiranje nizova, kao i nizova, počinje od nule. String objekti su postojani i ne mijenjaju se, tako da ima smisla da klasa String podržava indeksiranje samo za čitanje.

Konačno, klasa String definira jedno svojstvo samo za čitanje:

Public int duljina ( get; )

Svojstvo Length vraća broj znakova u nizu. Primjer u nastavku prikazuje upotrebu indeksatora i svojstva Length:

Korištenje sustava; Primjer klase ( static void Main() ( string str = " Jednostavan niz"; // Dobijte duljinu retka i 6. znak u retku pomoću indeksatora Console.WriteLine("Duljina retka - (0), 6. znak - "(1)"", str.Length, str) ;))

Operatori klase nizova

Klasa String preopterećuje sljedeća dva operatora: == i !=. Operator == koristi se za testiranje jednakosti dva niza znakova. Kada se operator == primijeni na reference objekta, on obično testira jesu li obje reference napravljene na isti objekt. A kada se operator == primijeni na reference na objekte tipa String, sadržaj samih nizova se uspoređuje radi jednakosti. Isto vrijedi i za operator !=. Kada se primjenjuje na reference na objekte tipa String, sadržaj samih nizova uspoređuje se radi nejednakosti. Međutim, drugi relacijski operatori, uključujući =, uspoređuju reference na objekte tipa String na isti način kao što uspoređuju reference na objekte drugih tipova. A da biste provjerili je li jedan niz veći od drugog, trebali biste pozvati metodu Compare() definiranu u klasi String.

Kao što će postati jasno, mnoge vrste usporedbi nizova znakova oslanjaju se na kulturološke informacije. Ali to se ne odnosi na operatore == i !=. Uostalom, oni jednostavno uspoređuju redne vrijednosti znakova u nizovima. (Drugim riječima, oni uspoređuju binarne vrijednosti znakova koji nisu izmijenjeni kulturnim normama, to jest lokalnim standardima.) Stoga ovi operatori izvode usporedbe nizova na način koji ne razlikuje velika i mala slova i kulturu.

Metode klasa nizova

Sljedeća tablica navodi neke od najzanimljivijih metoda u ovoj klasi, grupirane prema namjeni:

Metode rada sa nizovima
metoda Struktura i preopterećenja Svrha
Usporedba nizova
usporedi() public static int Usporedi(niz strA, niz strB)

Public static int Compare(string strA, string strB, bool ignoreCase)

Public static int Compare(string strA, string strB, StringComparison usporedbaType)

Public static int Compare(string strA, string strB, bool ignoreCase, CultureInfo kultura)

Statička metoda uspoređuje niz strA sa nizom strB. Vraća pozitivnu vrijednost ako niz strA više linija strB; negativno značenje, ako je niz strA manji od niza strB; a nula ako su nizovi strA i strB jednaki. Usporedbe se rade na temelju registra i kulture.

Ako ignoreCase dobije vrijednost true, usporedba ne uzima u obzir razlike između velikih i malih slova. Inače, ove razlike se uzimaju u obzir.

CompareType parametar specificira određeni način na koji se nizovi uspoređuju. Klasa CultureInfo definirana je u prostoru imena System.Globalization.

public static int Compare(string strA, int indexA, string strB, int indexB, int length)

Public static int Compare(string strA, int indexA, string strB, int indexB, int length, bool ignoreCase)

Public static int Compare(string strA, int indexA, string strB, int indexB, int length, StringComparison usporedbaType)

Public static int Compare(string strA, int indexA, string strB, int indexB, int length, bool ignoreCase, CultureInfo kultura)

Uspoređuje dijelove stringova strA i strB. Usporedba počinje s elementima niza strA i strB i uključuje broj znakova specificiranih parametrom duljine. Metoda vraća pozitivnu vrijednost ako je dio niza strA veći od dijela niza strB; negativna vrijednost ako je dio niza strA manji od dijela niza strB; i nula ako su dijelovi nizova strA i strB koji se uspoređuju jednaki. Usporedbe se rade na temelju registra i kulture.

Usporedi Redni() public static int CompareOrdinal(string strA, string strB)

Public static int CompareOrdinal(string strA, int indexA, string strB, int indexB, int count)

Radi isto što i metoda Compare(), ali bez uzimanja u obzir lokalnih postavki

Usporedi s() public int CompareTo(vrijednost objekta)

Uspoređuje pozivni niz s prikazom niza vrijednosnog objekta. Vraća pozitivnu vrijednost ako je pozivni niz veći od vrijednosti; negativno ako je pozivni niz manji od vrijednosti; i nula ako su uspoređeni nizovi jednaki

public int CompareTo(string strB)

Uspoređuje pozivni niz s nizom strB

Jednako() javno nadjačavanje bool jednako(objekt obj)

Vraća booleovu vrijednost true ako pozivni niz sadrži isti niz znakova kao niz znakova obj. Obavlja rednu usporedbu koja razlikuje velika i mala slova, ali kulturološki neosjetljiva

public bool jednako (vrijednost niza)

Public bool Equals(string value, StringComparison usporedbaType)

Vraća booleovu vrijednost true ako pozivni niz sadrži isti niz znakova kao vrijednost niza. Izvodi se redna usporedba koja razlikuje velika i mala slova, ali nije osjetljiva na kulturu. CompareType parametar specificira određeni način na koji se nizovi uspoređuju

public static bool Equals(string a, string b)

Javni statički bool Jednako (string a, string b, StringComparison usporedbaType)

Vraća booleovu vrijednost true ako niz a sadrži isti niz znakova kao niz b. Izvodi se redna usporedba koja razlikuje velika i mala slova, ali nije osjetljiva na kulturu. CompareType parametar specificira određeni način na koji se nizovi uspoređuju

Ulančavanje (povezivanje) nizova
Concat() javni statički niz Concat(niz str0, niz str1);

public static string Concat(params string values);

Kombinira pojedinačne instance niza u jedan niz (ulančavanje)
Traži u nizu
Sadrži () javni bool Sadrži (vrijednost niza) Metoda koja vam omogućuje da odredite sadrži li niz određeni podniz (vrijednost)
Počinje sa() public bool StartsWith(vrijednost niza)

Javni bool StartsWith(string vrijednost, StringComparison usporedbaType)

Vraća booleovu vrijednost true ako pozivni niz počinje vrijednošću podniza. Inače se vraća booleova vrijednost false. CompareType parametar specificira određeni način izvođenja pretraživanja

Završava s() public bool EndsWith(vrijednost niza)

Public bool EndsWith(string value, StringComparison usporedbaType)

Vraća booleovu vrijednost true ako pozivni niz završava vrijednošću podniza. U suprotnom, vraća booleovu vrijednost false. CompareType parametar specificira specifičnu metodu pretraživanja

IndexOf() public int IndexOf(char vrijednost)

Javni int IndexOf(vrijednost niza)

Pronalazi prvo pojavljivanje zadanog podniza ili znaka u nizu. Ako traženi znak ili podniz nije pronađen, vraća se vrijednost -1.

public int IndexOf(char vrijednost, int startIndex)

Public int IndexOf(vrijednost niza, int startIndex)

Public int IndexOf(char value, int startIndex, int count)

Public int IndexOf(string value, int startIndex, int count)

Vraća indeks prvog pojavljivanja vrijednosti znaka ili podniza u pozivnom nizu. Pretraživanje počinje od elementa navedenog pomoću startIndex i obuhvaća broj elemenata navedenih pomoću count (ako je navedeno). Metoda vraća -1 ako traženi znak ili podniz nije pronađen

LastIndexOf() Preopterećene verzije slične su metodi IndexOf().

Isto kao IndexOf, ali pronalazi zadnje pojavljivanje znaka ili podniza, a ne prvo

IndexOfAny() public int IndexOfAny(char anyOf)

Public int IndexOfAny(char anyOf, int startIndex)

Public int IndexOfAny(char anyOf, int startIndex, int count)

Vraća indeks prvog pojavljivanja bilo kojeg znaka iz polja anyOf pronađenog u pozivnom nizu. Pretraživanje počinje od elementa navedenog pomoću startIndex i obuhvaća broj elemenata navedenih pomoću count (ako je navedeno). Metoda vraća -1 ako se ne podudara niti jedan znak u nizu anyOf. Pretraga se obavlja na ordinalan način

LastIndexOfAny Preopterećene verzije slične su metodi IndexOfAny().

Vraća indeks posljednjeg pojavljivanja bilo kojeg znaka iz polja anyOf pronađenog u pozivnom nizu

Rastavljanje i spajanje nizova
Podjela javni niz Split (razdjelnik znakova parametara)

Javni niz Split (params char separator, int count)

Metoda koja vraća niz nizova s ​​podnizovima prisutnim u ovoj instanci unutar, koji su međusobno odvojeni elementima iz navedenog niza znakova ili nizova.

Prvi oblik metode Split() dijeli pozivni niz na sastavne dijelove. Rezultat je niz koji sadrži podnizove dobivene iz pozivnog niza. Znakovi koji ograničavaju ove podnizove prosljeđuju se u nizu razdjelnika. Ako je niz razdjelnika prazan ili se odnosi na prazan niz, tada se kao razdjelnik podniza koristi razmak. I u drugom obliku ovu metodu vraća broj podnizova specificiranih parametrom count.

public string Split(params separator znakova, StringSplitOptions opcije)

Javno dijeljenje niza (razdjelnik nizova, opcije StringSplitOptions)

Javno razdvajanje niza (razdjelnik znakova parametara, int broj, opcije StringSplitOptions)

Javni string Split (string separator, int count, StringSplitOptions opcije)

U prva dva oblika metode Split(), pozivni niz se dijeli na dijelove i vraća se niz koji sadrži podnizove dobivene iz pozivnog niza. Znakovi koji odvajaju ove podnizove prosljeđuju se u nizu razdjelnika. Ako je niz razdjelnika prazan, razmak se koristi kao razdjelnik. A u trećem i četvrtom obliku ove metode vraća se broj redaka ograničen parametrom brojanja.

Ali u svim oblicima, parametar opcija navodi određeni način za rukovanje praznim redcima koji nastaju kada su dva graničnika susjedna. Nabrajanje StringSplitOptions definira samo dvije vrijednosti: Nijedan I RemoveEmptyEntries. Ako je opcija None, tada su prazni nizovi uključeni u konačni rezultat dijeljenja izvornog niza. A ako je parametar opcija postavljen na RemoveEmptyEntries, onda su prazni redovi isključeni iz konačnog rezultata dijeljenja izvornog niza.

Pridružiti() public static string Join(string separator, string value)

Javni statički niz Join(razdjelnik niza, vrijednost niza, int startIndex, int count)

Konstruira novi niz kombiniranjem sadržaja niza nizova.

Prvi oblik metode Join() vraća niz koji se sastoji od spojenih podnizova proslijeđenih u nizu vrijednosti. Drugi oblik također vraća niz koji se sastoji od podnizova proslijeđenih u nizu vrijednosti, ali oni su spojeni u određeni broj, počevši od elementa niza vrijednosti. U oba oblika, svaki sljedeći redak odvojen je od prethodnog retka razdjelnom linijom određenom parametrom separator.

Linije za punjenje i obrezivanje
Trim() javni niz Trim()

Javni niz Trim(params char trimChars)

Metoda koja vam omogućuje uklanjanje svih pojavljivanja određenog skupa znakova s ​​početka i kraja tekućeg retka.

Prvi oblik metode Trim() uklanja razmake na početku i na kraju iz pozivnog niza. A drugi oblik ove metode uklanja početak i kraj pojavljivanja pozivnog niza znakova iz niza trimChars. Oba oblika vraćaju rezultirajući niz.

PadLeft() javni niz PadLeft(int totalWidth)

Javni niz PadLeft(int totalWidth, char paddingChar)

Omogućuje dodavanje niza znakovima s lijeve strane.

Prvi oblik metode PadLeft() uvodi razmake na lijevoj strani pozivnog niza tako da njegova ukupna duljina postaje jednaka vrijednosti parametra totalWidth. A u drugom obliku ove metode, znakovi označeni parametrom paddingChar unose se s lijeve strane pozivnog niza tako da njegova ukupna duljina postaje jednaka vrijednosti parametra totalWidth. Oba oblika vraćaju rezultirajući niz. Ako je vrijednost parametra totalWidth manja od duljine pozivnog niza, tada se vraća kopija nepromijenjenog pozivnog niza.

PadRight() Isto kao PadLeft()

Omogućuje vam dodavanje niza sa znakovima s desne strane.

Umetanje, brisanje i zamjena redaka
Umetnuti() public string Insert(int startIndex, string value)

Koristi se za umetanje jednog retka u drugi, gdje vrijednost označava red koji treba umetnuti u pozivni redak na startIndex. Metoda vraća rezultirajući niz.

Ukloniti() javni niz Remove(int startIndex)

Javni niz Remove(int startIndex, int count)

Koristi se za uklanjanje dijela niza. U prvom obliku metode Remove(), uklanjanje počinje na mjestu označenom s startIndex i nastavlja se do kraja retka. A u drugom obliku ove metode, broj znakova određen parametrom count uklanja se iz niza, počevši od mjesta naznačenog indeksom startIndex.

Zamijeniti() javni niz Zamijeni(char oldChar, char newChar)

Javni niz Zamijeni (niz staraVrijednost, niz novaVrijednost)

Koristi se za zamjenu dijela niza. U prvom obliku metode Replace(), sva pojavljivanja znaka oldChar u pozivnom nizu zamjenjuju se znakom newChar. A u drugom obliku ove metode, sva pojavljivanja niza oldValue u retku poziva zamjenjuju se nizom newValue.

Promjena velikih i malih slova
ToGore() javni niz ToUpper()

Pravi velika slova u pozivnom nizu.

Spustiti() javni niz ToLower()

Mala slova u pozivnom nizu.

Dobivanje podniza iz niza
podniz() javni niz Substring(int startIndex)

Javni niz Podniz (int startIndex, int duljina)

U prvom obliku metode Substring(), podniz se dohvaća počevši od lokacije označene parametrom startIndex i završavajući na kraju pozivnog niza. A u drugom obliku ove metode izdvaja se podniz koji se sastoji od broja znakova određenog parametrom duljine, počevši od mjesta naznačenog parametrom startIndex.

Sljedeći primjer programa koristi nekoliko gore navedenih metoda:

Korištenje sustava; koristeći System.Collections.Generic; koristeći System.Linq; koristeći System.Text; namespace ConsoleApplication1 ( class Program ( static void Main(string args) ( // Usporedite prva dva retka string s1 = "ovo je niz"; niz s2 = "ovo je tekst, a ovo je niz"; if (String. CompareOrdinal(s1, s2) != 0) Console.WriteLine("Nizovi s1 i s2 nisu jednaki"); if (String.Compare(s1, 0, s2, 13, 10, true) == 0) Console.WriteLine ("Međutim, sadrže isti tekst"); // Ulančavanje nizova Console.WriteLine(String.Concat("\n" + "Jedan, dva ","tri, četiri")); // Traži u nizu / / Prvo pojavljivanje podniza if (s2. IndexOf("this") != -1) Console.WriteLine("Riječ \"this\" pronađena u retku, ona "+ "je na: (0) poziciji" , s2.IndexOf("this")); // Zadnje pojavljivanje podniza if (s2.LastIndexOf("this") != -1) Console.WriteLine("Posljednje pojavljivanje riječi \"this\" je " + "na (0) poziciji", s2.LastIndexOf("this" )); // Pretraživanje iz niza znakova char myCh = ("y","x","t"); if (s2.IndexOfAny (myCh) != -1) Console.WriteLine("Jedan od znakova iz niza ch "+ "pronađen u trenutnom retku na poziciji (0)", s2.IndexOfAny(myCh)); // Odredi počinje li red danim podnizom if (s2.StartsWith("ovo je tekst") == true) Console.WriteLine("Podniz pronađen!"); // Odredite da li string sadrži podstring // pomoću primjera određivanja korisnikovog OS stringa myOS = Environment.OSVersion.ToString(); if (myOS.Contains("NT 5.1")) Console.WriteLine("Vaš operativni sustav Windows sustav XP"); else if (myOS.Contains("NT 6.1")) Console.WriteLine("Vaš operativni sustav je Windows 7"); Console.ReadLine(); ) ) )

Malo o usporedbi nizova u C#

Vjerojatno najuobičajenija od svih operacija niza znakova je uspoređivanje jednog niza s drugim. Prije nego što pogledamo metode usporedbe nizova, vrijedi naglasiti sljedeće: Usporedbe nizova mogu se izvršiti u .NET Frameworku na dva glavna načina:

    Prvo, usporedba može odražavati običaje i norme određenog kulturnog okruženja, što su često kulturne postavke koje dolaze u obzir kada se program provodi. Ovo je standardno ponašanje za neke, ali ne sve metode usporedbe.

    I drugo, usporedba se može napraviti bez obzira na kulturne postavke samo prema rednim vrijednostima znakova koji čine niz. Općenito govoreći, nekulturalne usporedbe nizova koriste leksikografski poredak (i ​​lingvističke značajke) kako bi odredile je li jedan niz veći, manji ili jednak drugom nizu. U ordinalnoj usporedbi, nizovi su jednostavno poredani na temelju nepromijenjene vrijednosti svakog znaka.

Zbog razlika u načinima na koje se usporedbe nizova razlikuju između kulturnih konteksta i rednih usporedbi, te posljedica svake takve usporedbe, snažno se preporučuje da najbolje metode, trenutno u ponudi Microsofta. Uostalom, odabir pogrešne metode za usporedbu nizova može dovesti do kvar program kada radi u okruženju različitom od onog u kojem je razvijen.

Odabir načina usporedbe nizova znakova vrlo je važna odluka. Kao opće pravilo i bez iznimke, trebali biste odabrati usporedbu nizova na kulturno osjetljiv način ako se to radi u svrhu prikazivanja rezultata korisniku (na primjer, za prikaz niza nizova poredanih leksikografskim redoslijedom). Ali ako nizovi sadrže fiksne informacije koje se ne namjeravaju mijenjati da bi se prilagodile kulturnim razlikama, kao što je naziv datoteke, ključna riječ, adresu web stranice ili vrijednost vezanu uz sigurnost, trebali biste odabrati usporedbu rednog niza. Naravno, karakteristike određene aplikacije koja se razvija će diktirati izbor odgovarajuće metode za usporedbu nizova znakova.

Klasa String pruža različite metode usporedbe nizova, koje su navedene u gornjoj tablici. Najuniverzalnija među njima je Compare() metoda. Omogućuje usporedbu dva niza u cijelosti ili djelomično, osjetljivo na velika ili mala slova, na način određen parametrom tipa Usporedba nizova, kao i informacije o kulturi koje pruža parametar tipa KulturaInfo.

Ona preopterećenja metode Compare() koja ne uključuju parametar tipa StringComparison izvode usporedbu nizova znakova osjetljivu na velika i mala slova i kulturu. A u onim preopterećenim varijantama koje ne sadrže parametar tipa CultureInfo, informacije o kulturnom okruženju određene su trenutnim okruženjem vremena izvođenja.

Vrsta StringComparison je enumeracija koja definira vrijednosti prikazane u tablici ispod. Pomoću ovih vrijednosti možete stvoriti usporedbu nizova koja odgovara vašim potrebama specifična primjena. Stoga dodavanje parametra tipa StringComparison proširuje mogućnosti metode Compare() i drugih metoda usporedbe kao što je Equals(). To također omogućuje nedvosmisleno označavanje načina na koji se nizovi namjeravaju uspoređivati.

Zbog razlika između kulturno osjetljivih usporedbi nizova i ordinalnih usporedbi, važno je biti što je moguće precizniji u tom pogledu.

Vrijednosti definirane u nabrajanju StringComparison
Značenje Opis
CurrentCulture Usporedbe nizova se rade pomoću trenutne postavke parametri kulturnog okruženja
CurrentCultureIgnoreCase Usporedbe nizova vrše se pomoću trenutnih postavki kulture, ali ne razlikuju velika i mala slova
InvariantCulture Usporedbe nizova se rade pomoću nepromjenjivih, tj. univerzalne podatke o kulturnoj sredini
InvariantCultureIgnoreCase Usporedbe nizova se rade pomoću nepromjenjivih, tj. univerzalni kulturni podaci i neosjetljivi su na velika i mala slova
Redni Usporedbe nizova se rade pomoću rednih vrijednosti znakova u nizu. U tom slučaju može doći do poremećaja leksikografskog reda i simboli prihvaćeni u određenoj kulturnoj sredini ignoriraju se
OrdinalIgnoreCase Usporedbe nizova se rade pomoću rednih vrijednosti znakova u nizu, ali nisu osjetljive na velika i mala slova

U svakom slučaju, metoda Compare() vraća negativnu vrijednost ako je prvi niz koji se uspoređuje manji od drugog; pozitivan ako je prvi niz koji se uspoređuje veći od drugog; i konačno, nula ako su oba niza koja se uspoređuju jednaka. Iako metoda Compare() vraća nulu ako su nizovi koji se uspoređuju jednaki, općenito je bolje koristiti metodu Equals() ili operator == da se utvrdi jesu li nizovi znakova jednaki.

Činjenica je da metoda Compare() određuje jednakost uspoređivanih nizova na temelju njihovog redoslijeda sortiranja. Stoga, ako se napravi kulturološka usporedba nizova, oba niza mogu na kraju biti ista u svom redoslijedu sortiranja, ali ne i jednaka u sadržaju. Prema zadanim postavkama, jednakost niza se određuje u metodi Equals(), na temelju rednih vrijednosti znakova i bez uzimanja u obzir kulturnog okruženja. Stoga se prema zadanim postavkama oba niza uspoređuju u ovoj metodi radi apsolutne jednakosti znak po znak, slično kao što se to radi u operatoru ==.

Unatoč velikoj svestranosti metode Compare(), za jednostavne redne usporedbe nizova znakova lakše je koristiti metodu CompareOrdinal(). Konačno, imajte na umu da metoda CompareTo() izvodi samo kulturno osjetljive usporedbe nizova.

Sljedeći program demonstrira upotrebu metoda Compare(), Equals(), CompareOrdinal() i operatora == i != za usporedbu nizova znakova. Imajte na umu da prva dva primjera usporedbe jasno pokazuju razlike između kulturološki osjetljivih usporedbi nizova i rednih usporedbi u engleskom govornom okruženju:

Korištenje sustava; Primjer klase ( static void Main() ( string str1 = "alpha"; string str2 = "Alpha"; string str3 = "Beta"; string str4 = "alpha"; string str5 = "alpha, beta"; int rezultat; / / Prvo, pokažite razlike između kulturalno osjetljive usporedbe nizova // i ordinalne usporedbe rezultat = String.Compare(str1, str2, StringComparison.CurrentCulture); Console.Write("Kulturalno osjetljive usporedbe nizova: "); if (rezultat 0 ) Console.WriteLine(str1 + " veći od " + str2); inače Console.WriteLine(str1 + " jednako " + str2); rezultat = String.Compare(str1, str2, StringComparison.Ordinal); Console.Write(" Redovi redne usporedbe: "); if (rezultat 0) Console.WriteLine(str1 + " veći od " + str2); else Console.WriteLine(str1 + " jednako " + str4); // Koristite rezultat metode CompareOrdinal() = String.CompareOrdinal( str1, str2); Console.Write("Usporedba nizova pomoću metode CompareOrdinal():\n"); if (rezultat 0) Console.WriteLine(str1 + " veće od " + str2); else Konzola .WriteLine(str1 + " jednako " + str4); Console.WriteLine(); // Utvrdite jednakost niza korištenjem == operatora // Ovo je redna usporedba nizova znakova if (str1 == str4) Console.WriteLine(str1 + " == " + str4); // Definirajte nejednakost linije koristeći != operator if(str1 != str3) Console.WriteLine(str1 + " != " + str3); if(str1 != str2) Console.WriteLine(str1 + " != " + str2); Console.WriteLine(); // Izvođenje redne usporedbe nizova bez obzira na velika i mala slova // koristeći metodu Equals() if(String.Equals(str1, str2, StringComparison.OrdinalIgnoreCase)) Console.WriteLine("Usporedba nizova pomoću metode Equals() s " + "Parametar OrdinalIgnoreCase: \n" + str1 + " jednako " + str2); Console.WriteLine(); // Usporedi dijelove nizova if(String.Compare(str2, 0, str5, 0, 3, StringComparison.CurrentCulture) > 0) ( Console.WriteLine("Usporedi nizove uzimajući u obzir trenutno kulturno okruženje:" + "\n3 prvi znakovi niza " + str2 + " više od prva 3 znaka retka " + str5); ) ) )

Pokretanje ovog programa daje sljedeće rezultate:

U moderni standard C++ definira klasu s funkcijama i svojstvima (varijablama) za organizaciju rada sa stringovima (u klasičnom C jeziku nema stringova kao takvih, postoje samo nizovi znakova char):

#uključi

#uključi

#uključi

Za rad s nizovima također morate povezati standardni prostor imena:

Korištenje imenskog prostora std;

U protivnom ćete svugdje morati navesti deskriptor klase std::string umjesto string.

Ispod je primjer programa koji radi sa stringom (ne radi u starijim C-kompatibilnim prevoditeljima!):

#uključi #uključi #uključi korištenje imenskog prostora std; int main() (string s = "Test"; s.insert(1,"!"); cout<< s.c_str() << endl; string *s2 = new string("Hello"); s2->brisanje(s2->kraj()); cout<< s2->c_str(); cin.get(); povratak 0; )

Glavne karakteristike koje klasa string ima:

  • inicijalizacija s nizom znakova (ugrađeni tip niza) ili drugim objektom tipa niz. Ugrađeni tip nema drugu mogućnost;
  • kopiranje jednog retka u drugi. Za ugrađeni tip morate koristiti funkciju strcpy();
  • Pristup pojedinačni likovi redaka za čitanje i pisanje. U ugrađenom nizu, to se radi korištenjem operacije indeksa ili neizravnog adresiranja pomoću pokazivača;
  • uspoređujući dva niza radi jednakosti. Za ugrađeni tip koriste se funkcije obitelji strcmp();
  • ulančavanje (ulančavanje) dva niza, što daje rezultat ili kao treći niz ili umjesto jednog od izvornih. Za ugrađeni tip koristi se funkcija strcat(), ali za dobivanje rezultata nova linija, trebate uzastopno koristiti funkcije strcpy() i strcat(), a također voditi računa o dodjeli memorije;
  • ugrađena sredstva za određivanje duljine niza (funkcije članice klase size() i l ength()). Jedini način da saznate duljinu niza ugrađenog tipa je izračunavanje pomoću funkcije strlen();
  • sposobnost otkrivanja je li niz prazan.

Pogledajmo ove osnovne sposobnosti u detaljima.

Inicijaliziranje nizova pri opisivanju i duljina niza(ne uključujući završni nulti terminator):

String str("Moj niz\n"); cout<< "Длина " << st << ": " << st.size() << " символов, включая символ новой строки\n";

String također može biti prazan:

Niz st2;

Da to provjerim je li linija prazna, možete usporediti njegovu duljinu s 0:

If (! st.size()) // prazno

ili koristite metodu empty(), koja vraća true za prazan niz i false za neprazan:

If (st.empty()) // prazno

Treći oblik stvaranja niza inicijalizira objekt tipa string drugim objektom istog tipa:

Niz st3(st);

Niz st3 inicijalizira se nizom st. Kako možemo osigurati ove linije se podudaraju? Upotrijebimo operator usporedbe (==):

If (st == st3) // inicijalizacija radi

Kako kopirati jedan redak u drugi? Korištenje normalnog operatora dodjele:

St2 = st3; // kopiraj st3 u st2

Za spajanje nizova koristi se operator zbrajanja (+) ili operator zbrajanja plus dodjeljivanja (+=). Neka su dana dva retka:

Niz s1("zdravo, "); niz s2("svijet\n");

Možemo dobiti treći niz koji se sastoji od ulančavanja prva dva, na ovaj način:

Niz s3 = s1 + s2;

Ako želimo dodati s2 na kraj s1, trebali bismo napisati:

S1 += s2;

Operacija zbrajanja može ulančati objekte klase niz ne samo međusobno, već i s ugrađenim nizovima tipa. Gornji primjer možete prepisati tako da posebni znakovi i interpunkcijski znakovi budu predstavljeni ugrađenim tipom char *, a značajne riječi predstavljene objektima niza klase:

Const char *pc = ", "; niz s1("zdravo"); niz s2("svijet"); niz s3 = s1 + pc + s2 + "\n"; cout<< endl << s3;

Takvi izrazi rade jer prevoditelj "zna" kako automatski pretvoriti objekte ugrađenog tipa u objekte klase string. Također je moguće jednostavno dodijeliti ugrađeni niz string objektu:

Niz s1; const char *pc = "niz znakova"; s1 = pc; // Točno

Inverzna transformacija u ovom slučaju Ne radi. Pokušaj izvođenja sljedeće inicijalizacije niza ugrađenog tipa izazvat će pogrešku kompilacije:

Znak *str = s1; // pogreška kompilacije

Da biste izvršili ovu konverziju, morate izričito pozvati funkciju članicu koja se zove c_str() ("C niz"):

Const char *str = s1.c_str();

Funkcija c_str() vraća pokazivač na niz znakova koji sadrži niz string objekta onako kako bi se pojavio u ugrađenoj vrsti niza. Ključna riječ const ovdje sprječava "opasnu" mogućnost u modernim vizualnim okruženjima izravne izmjene sadržaja objekta putem pokazivača.

DO pojedinačni likovi Objektu tipa string, poput ugrađenog tipa, može se pristupiti pomoću operacije indeksa. Na primjer, ovdje je dio koda koji sve točke zamjenjuje podvlakama:

String str("www.disney.com"); int veličina = str.veličina(); za (int i = 0; i< size; i++) if (str[i] == ".") str[ i ] = "_"; cout << str;

Zamijeni(str.begin(), str.end(), ".", "_");

Istina, ovdje se ne koristi metoda zamjene klase nizova, već istoimeni algoritam:

#uključi

Budući da se string objekt ponaša kao spremnik, na njega se mogu primijeniti drugi algoritmi. To vam omogućuje rješavanje problema koji nisu izravno riješeni funkcijama klase nizova.

Ispod je kratak opis glavnih operatora i funkcija klase string; veze u tablici vode do opisa na ruskom jeziku na Internetu. Potpuniji popis mogućnosti klase string može se pronaći, primjerice, na Wikipediji ili na web stranici cplusplus.com.

Određivanje znakova u nizu

operator=

dodjeljuje vrijednosti nizu

dodijeliti

dodjeljuje znakove nizu

Pristup pojedinačnim znakovima

na

dobivanje navedenog znaka i provjera je li indeks izvan granica

operater

dobivanje navedenog znaka

ispred

dobivanje prvog znaka

leđa

dobivanje posljednjeg znaka

podaci

vraća pokazivač na prvi znak niza

c_str

vraća nepromjenjiv niz C znakova koji sadrži znakove niza

Provjera kapaciteta linije

prazan

provjerava je li niz prazan

veličina
duljina

vraća broj znakova u nizu

najveća_veličina

vraća najveći broj znakova

pričuva

rezervira skladišni prostor

Operacije nizova

čisto

briše sadržaj niza

umetnuti

umetanje znakova

izbrisati

brisanje znakova

odgurnuti

dodavanje znaka na kraj niza

pop_back

uklanja posljednji znak

dodati

operator+=

dodaje znakove na kraj niza

usporediti

uspoređuje dva niza

zamijeniti

zamjenjuje svako pojavljivanje navedenog znaka

substr

vraća podniz

kopirati

kopira znakove

promijeniti veličinu

mijenja broj pohranjenih znakova

Programer kaže:

Zdravo! Pročitao sam vaš članak. Bilo mi je jako tužno i smiješno u isto vrijeme. Posebno je ubojita ova tvoja rečenica: “Budući da se varijabla tipa char često koristi kao niz, broj mogućih vrijednosti je određen.” 😆 😆 😆
Ne smijem ti se. Izrada web stranice doista je podvig. Samo vas želim podržati savjetom i ukazati na nekoliko grešaka.

1. Vrijednost varijable tipa char dodjeljuje se na sljedeći način:

Ovdje:

Znak a = *"A";

Pokazivač na niz se deadresira i kao rezultat se vraća vrijednost prvog elementa niza, tj. 'A'

2. Resetiranje se događa na sljedeći način:

Znak a = NULL;
char b = ();

//I ovako se briše linija u tijelu programa

"" - ovaj se simbol naziva nulti terminator. Postavlja se na kraj retka. Sami ste, a da toga niste znali, ovim simbolom ispunili niz s1 iz svog članka. Ali bilo je moguće dodijeliti ovaj simbol samo nultom elementu niza.

3. Slobodno koristite terminologiju.
Znak = je operacija dodjele.
Znak * je operacija deadresiranja.
Mislim na ovaj fragment članka: “Sve se pokazalo tako jednostavnim, prije znaka = morali ste staviti znak * i morali ste deklarirati broj elementa (nula odgovara prvom)”

Nemojte me krivo shvatiti, članak ne može postojati u sadašnjem obliku. Ne budi lijen, prepiši ga.
Imate veliku odgovornost! Ozbiljan sam. Stranice vašeg web-mjesta uključene su u prvu stranicu rezultata Yandexa. Mnogi ljudi su već počeli ponavljati vaše greške.

Sretno! Možeš ti to!

:
Znam to odavno, samo je teško stalno iznova čitati 200 članaka da bi se nešto ispravilo. A neki bezobraznici pišu tako da čak i znajući što je najbolje ispraviti, uopće nisu voljni to ispraviti.

Ostale greške rado ću ispraviti. ispraviti sve netočnosti ako se pojave. Cijenim tvoju pomoć. hvala, to znam odavno, samo je teško stalno iznova čitati 200 članaka da bi se nešto ispravilo. A neki bezobraznici pišu tako da čak i znajući što je najbolje ispraviti, uopće nisu voljni to ispraviti.
S vašim char b = (); Ovo uopće nije nuliranje. Trebali bi barem provjeriti.
ako govorimo o nultom znaku "" ; Dobro sam znala kad sam njome punila liniju da je cilj pokazati pravo čišćenje, a ne nešto oku vidljivo jer u liniji ima i smeća koje se ponekad nađe na putu. Trebali biste sami biti pažljiviji s izrazima, "nulti simbol završetka" ili samo "nulti simbol", a ne terminator))) A simbol terminatora zvuči baš super.

Članak ću modernizirati, ali neću prelaziti na tuđi stil. Ako mislim da je početniku lakše shvatiti na ovaj način nego na način na koji on želi, onda ću to ostaviti tako. Nemojte ni mene krivo shvatiti. Slabi početnik puno je lakše razumjeti i zapamtiti riječ "znak" nego definiciju i naziv svakog znaka. U tome nema nikakve greške, to je znak - znak. Manji naglasak na jednom daje veći naglasak na drugom.

Ostale greške rado ću ispraviti. ispraviti sve netočnosti ako se pojave. Cijenim tvoju pomoć. Hvala vam.

Bok opet!
Želim razjasniti. Izraz "nulti terminator" (terminator od engleskog limiter) upotrijebio je moj profesor na sveučilištu. Očito je ovo stara škola!
Što se tiče resetiranja redaka.
char b = (); Ovo je doista resetiranje. Cijeli niz je ispunjen nulama. Ako mi ne vjerujete, provjerite!
Ako redak promatramo u njegovom prirodnom, svakodnevnom smislu, tada će "prazan" redak biti redak u kojem nema niti jednog znaka. Stoga je u 99,9% slučajeva dovoljno na početku staviti nulti znak. Obično se niz obrađuje do prvog nultog znaka, a koji znakovi dolaze nakon njega više nije važno. Razumijem da ste htjeli resetirati liniju. Upravo sam odlučio ponuditi vremenski testiranu klasičnu opciju.

:
Kada "Obično obrada niza ide do prvog nultog znaka, a znakovi koji dolaze nakon njega više nisu važni" - da, niz je poništen
Ako uzmemo u obzir "stvarno nuliranje svih ćelija retka (o čemu sam pisao)" - ne, ne nuliranje, pa čak ni prvi znak nije nula. Provjerio sam ovu opciju. MinGW(CodeBlock) - cijeli niz daje znak "a"
Mislim da to nije razlog za raspravu.

Zadnja izmjena: 31.10.2015

Ulančavanje

Ulančavanje ili spajanje nizova može se izvršiti pomoću operatora + ili metode Concat:

String s1 = "zdravo"; niz s2 = "svijet"; niz s3 = s1 + " " + s2; // rezultat: string "hello world" string s4 = String.Concat(s3, "!!!"); // rezultat: string "hello world!!!" Console.WriteLine(s4);

Metoda Concat je statična metoda klase String koja uzima dva niza kao parametre. Postoje i druge verzije metode koje uzimaju drugačiji broj parametara.

Metoda spajanja također se može koristiti za spajanje nizova:

String s5 = "jabuka"; niz s6 = "dan"; niz s7 = "čuva"; string s8 = "liječnik"; niz s9 = "odsutan"; vrijednosti niza = novi niz (s5, s6, s7, s8, s9); String s10 = String.Join(" ", vrijednosti); // rezultat: string "jabuka na dan tjera doktora podalje"

Metoda Join je također statična. Verzija gore korištene metode uzima dva parametra: niz znakova za razdvajanje (u ovom slučaju razmak) i niz znakova koji će biti spojeni i odvojeni pomoću znaka za razdvajanje.

Usporedba nizova

Za usporedbu nizova upotrijebite statičku metodu usporedbe:

String s1 = "zdravo"; niz s2 = "svijet"; int rezultat = String.Compare(s1, s2); ako (rezultat<0) { Console.WriteLine("Строка s1 перед строкой s2"); } else if (result >0) ( Console.WriteLine("Redak s1 dolazi nakon retka s2"); ) else ( Console.WriteLine("Redak s1 i s2 su identični"); ) // rezultat će biti "Redak s1 prije retka s2"

Ova verzija metode Usporedi uzima dva niza i vraća broj. Ako je prvi niz abecedno viši od drugog, vraća se broj manji od nule. Inače se vraća broj veći od nule. I treći slučaj - ako su nizovi jednaki, vraća se broj 0.

U ovom slučaju, budući da je znak h abecedno viši od znaka w, prvi red će biti viši.

Traži u nizu

Pomoću metode IndexOf možemo odrediti indeks prvog pojavljivanja jednog znaka ili podniza u nizu:

String s1 = "zdravo svijetu"; char ch = "o"; int indexOfChar = s1.IndexOf(ch); // jednako 4 Console.WriteLine(indexOfChar); string subString = "rad"; int indexOfSubstring = s1.IndexOf(subString); // jednako 6 Console.WriteLine(indexOfSubstring);

Metoda LastIndexOf radi na sličan način, osim što pronalazi indeks posljednjeg pojavljivanja znaka ili podniza u nizu.

Druga skupina metoda omogućuje vam da saznate počinje li niz ili završava određenim podnizom. Za to su dizajnirane metode StartsWith i EndsWith. Na primjer, imamo zadatak izbrisati sve datoteke s nastavkom .exe iz mape:

String path = @"C:\SomeDir"; string datoteke = Imenik.GetFiles(put); za (int i = 0; i< files.Length; i++) { if(files[i].EndsWith(".exe")) File.Delete(files[i]); }

Razdvajanje žica

Pomoću funkcije Split možemo podijeliti niz u niz podnizova. Funkcija Split uzima niz znakova ili nizova kao parametar koji će služiti kao graničnici. Na primjer, izbrojimo broj riječi u pojmu tako da ga podijelimo s razmacima:

String text = "I zato se sve dogodilo"; string words = text.Split(new char ( " " )); foreach (string s u riječima) ( Console.WriteLine(s); )

Ovo nije najbolji način dijeljenja razmacima, budući da bismo mogli imati nekoliko uzastopnih razmaka u ulaznom nizu, a rezultirajući niz bi također sadržavao razmake, pa je bolje koristiti drugu verziju metode:

String words = text.Split(new char ( " "), StringSplitOptions.RemoveEmptyEntries);

Drugi parametar StringSplitOptions.RemoveEmptyEntries kaže da sve prazne podnizove treba ukloniti.

Obrezivanje linije

Za rezanje znakova na početku ili na kraju koristite funkciju Trim:

Tekst niza = "zdravo svijetu"; tekst = tekst.Trim(); // rezultat "zdravo svijetu" text = text.Trim(new char ( "d", "h" )); // rezultat "hello world"

Funkcija Trim, bez parametara, skraćuje razmake na početku i na kraju i vraća skraćeni niz. Da bismo eksplicitno odredili koji znakovi na početku i na kraju trebaju biti odrezani, možemo proslijediti niz tih znakova u funkciju.

Ova funkcija ima djelomične analoge: funkcija TrimStart skraćuje početne znakove, a funkcija TrimEnd krajnje znakove.

Funkcija Substring omogućuje vam rezanje određenog dijela niza:

String text = "Dobar dan"; // odrezano počevši od trećeg znaka text = text.Substring(2); // rezultat "dobar dan" Console.WriteLine(text); // rezanje prvo na zadnja dva znaka text = text.Substring(0, text.Length - 2); // rezultat "roshy de" Console.WriteLine(text);

Funkcija Substring također vraća skraćeni niz. Prva korištena inačica koristi indeks kao parametar, počevši od kojeg treba skraćivati ​​niz. Druga verzija koristi dva parametra - indeks početka podrezivanja i duljinu odrezanog dijela strune.

Umetnuti

Da biste umetnuli jedan red u drugi, upotrijebite funkciju Umetni:

String text = "Dobar dan"; string subString = "prekrasno"; text = text.Insert(8, subString); Console.WriteLine(text);

Prvi parametar u funkciji Insert je indeks na koji treba umetnuti podniz, a drugi parametar je sam podniz.

Uklanjanje redaka

Metoda Ukloni pomaže ukloniti dio niza:

String text = "Dobar dan"; // indeks zadnjeg znaka int ind = text.Length - 1; // izrezivanje zadnjeg znaka text = text.Remove(ind); Console.WriteLine(text); // izreži prva dva znaka text = text.Remove(0, 2);

Prva verzija metode Remove uzima indeks u nizu, počevši od kojeg treba ukloniti sve znakove. Druga verzija uzima još jedan parametar - koliko znakova treba ukloniti.

Zamjena

Za zamjenu jednog znaka ili podniza drugim koristite metodu Zamijeni:

String text = "dobar dan"; text = text.Replace("dobro", "loše"); Console.WriteLine(text); tekst = tekst.Zamijeni("o", ""); Console.WriteLine(text);

U drugom slučaju korištenja funkcije Replace, niz od jednog znaka "o" zamjenjuje se praznim nizom, odnosno zapravo se uklanja iz teksta. Ova metoda olakšava brisanje određenog teksta u recima.

Promjena velikih i malih slova

Za pretvaranje niza u velika i mala slova koristite funkcije ToUpper() i ToLower():

String hello = "Zdravo svijete!"; Console.WriteLine(hello.ToLower()); // Pozdrav svijete! Console.WriteLine(hello.ToUpper()); // POZDRAV SVIJETE!

Najbolji članci na temu