C++-merkkijonot ovat merkkijonoja, jotka on tallennettu char-taulukkoon. Merkkijonoja käytetään sanojen ja tekstin tallentamiseen. Niitä käytetään myös tietojen, kuten numeroiden ja muun tyyppisen tiedon, tallentamiseen. C++:n merkkijonot voidaan määrittää joko käyttämällä std::merkkijonoluokka tai C-tyyliset merkkitaulukot.

1. C-tyyliset kielet
Nämä merkkijonot tallennetaan tavallisena vanhana merkkijonona, jonka lopussa on a tyhjä merkki . Ne ovat merkkijonoja, jotka C++ peri C-kielestä.
Syntaksi:
char str[] = 'techcodeview.com';>
Esimerkki:
C++
// C++ Program to demonstrate strings> #include> using> namespace> std;> int> main()> {> >char> s[] =>'techcodeview.com'>;> >cout << s << endl;> >return> 0;> }> |
>
>Lähtö
techcodeview.com>
2. std::string Luokka
Nämä ovat uudentyyppisiä merkkijonoja, jotka esitetään C++:ssa std::string-luokkana, joka on määritetty otsikkotiedoston sisällä. Tämä tarjoaa monia etuja perinteisiin C-tyyliin verrattuna, kuten dynaamisen koon, jäsenfunktiot jne.
Syntaksi:
std::string str('techcodeview.com');> Esimerkki:
C++
// C++ program to create std::string objects> #include> using> namespace> std;> int> main()> {> >string str(>'techcodeview.com'>);> >cout << str;> >return> 0;> }> |
>
>Lähtö
techcodeview.com>
Vielä yksi tapa tehdä merkkijonoja, joissa on sama merkki, joka toistuu uudestaan ja uudestaan.
Syntaksi:
std::string str(number,character);>
Esimerkki:
C++
#include> using> namespace> std;> int> main()> {> >string str(5,>'g'>);> >cout << str;> >return> 0;> }> |
>
>
Lähtö:
ggggg>
Tapoja määrittää merkkijono C++:ssa
Merkkijonoja voidaan määritellä useilla tavoilla C++:ssa. Merkkijonoihin pääsee standardikirjastosta merkkijonoluokan avulla. Merkkitaulukoita voidaan käyttää myös merkkijonojen määrittämiseen. String tarjoaa runsaasti ominaisuuksia, kuten haku ja manipulointi, jotka ovat yleisesti käytettyjä menetelmiä. Vaikka tämä menetelmä on vähemmän edistynyt kuin merkkijonoluokka, sitä käytetään edelleen laajalti, koska se on tehokkaampi ja helpompi käyttää. Tapoja määrittää merkkijono C++:ssa ovat:
- Käytä merkkijonoavainsanaa
- C-tyylisten merkkijonojen käyttö
1. Käytä merkkijonoavainsanaa
On helpompaa määrittää merkkijono merkkijonoavainsanalla taulukkoavainsanan käyttämisen sijaan, koska se on helppo kirjoittaa ja ymmärtää.
Syntaksi:
string s = 'techcodeview.com'; string s('techcodeview.com');> Esimerkki:
C++
// C++ Program to demonstrate use of string keyword> #include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> >string str(>'techcodeview.com'>);> >cout <<>'s = '> << s << endl;> >cout <<>'str = '> << str << endl;> >return> 0;> }> |
>
>Lähtö
s = techcodeview.com str = techcodeview.com>
2. C-tyylisten merkkijonojen käyttäminen
C-tyylisten merkkijonokirjastojen funktioiden, kuten strcpy(), strcmp() ja strcat() käyttäminen merkkijonojen määrittämiseen. Tämä menetelmä on monimutkaisempi, eikä sitä käytetä yhtä laajalti kuin kaksi muuta, mutta se voi olla hyödyllinen käsiteltäessä vanhaa koodia tai kun tarvitset suorituskykyä.
char s[] = {'g', 'f', 'g', ' '}; char s[4] = {'g', 'f', 'g', ' '}; char s[4] = 'gfg'; char s[] = 'gfg';> Esimerkki:
C++
// C++ Program to demonstrate C-style string declaration> #include> using> namespace> std;> int> main()> {> >char> s1[] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s2[4] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s3[4] =>'gfg'>;> >char> s4[] =>'gfg'>;> >cout <<>'s1 = '> << s1 << endl;> >cout <<>'s2 = '> << s2 << endl;> >cout <<>'s3 = '> << s3 << endl;> >cout <<>'s4 = '> << s4 << endl;> >return> 0;> }> |
>
>Lähtö
s1 = gfg s2 = gfg s3 = gfg s4 = gfg>
Toinen esimerkki C-tyylisestä merkkijonosta:
C++
#include> using> namespace> std;> int> main()> {> >string S =>'Geeeks for Geeks'>;> >cout <<>'Your string is= '>;> >cout << S << endl;> >return> 0;> }> |
>
>Lähtö
Your string is= Geeeks for Geeks>
Kuinka syöttää merkkijonoa C++:ssa
Merkkijonon syöttö tarkoittaa merkkijonon hyväksymistä käyttäjältä. C++:ssa. Meillä on erilaisia syötteitä käyttäjältä, jotka riippuvat merkkijonosta. Yleisin tapa on ottaa panos syöminen avainsanan erotusoperaattorilla (>>) C++:ssa. Menetelmät merkkijonon ottamiseksi syötteeksi ovat:
- syöminen
- getline
- stringstream
1. Käyttämällä Cin
Yksinkertaisin tapa syöttää merkkijono on käyttää syöminen komento yhdessä virranpoisto-operaattorin kanssa (>>).
Syntaksi:
cin>>s;>
Esimerkki:
C++
panda sulaa
// C++ Program to demonstrate string input using cin> #include> using> namespace> std;> int> main() {> >string s;> > >cout<<>'Enter String'>< cin>>s; cout<<'String is: '< return 0; }> |
>
>Lähtö
Enter String String is:>
Lähtö:
Enter String techcodeview.com String is: techcodeview.com>
2. Getlinen käyttö
The getline()-funktio C++:ssa käytetään lukemaan merkkijono syöttövirrasta. Se ilmoitetaan otsikkotiedostossa.
Syntaksi:
getline(cin,s);>
Esimerkki:
C++
// C++ Program to demonstrate use of getline function> #include> using> namespace> std;> int> main()> {> >string s;> >cout <<>'Enter String'> << endl;> >getline(cin, s);> >cout <<>'String is: '> << s << endl;> >return> 0;> }> |
>
>Lähtö
Enter String String is:>
Lähtö:
Enter String techcodeview.com String is: techcodeview.com>
3. Stringstreamin käyttäminen
The stringstream-luokka sisään C++:aa käytetään syöttämään useita merkkijonoja kerralla.
Syntaksi:
stringstream stringstream_object(string_name);>
Esimerkki:
C++
// C++ Program to demonstrate use of stringstream object> #include> #include> #include> using> namespace> std;> int> main()> {> >string s =>' techcodeview.com to the Moon '>;> >stringstream obj(s);> >// string to store words individually> >string temp;> >//>> operaattori lukee merkkijono-objektista> >while> (obj>> lämpötila) {> >cout << temp << endl;> >}> >return> 0;> }> |
>
>Lähtö
techcodeview.com to the Moon>
Kuinka välittää merkkijonoja funktioille?
Samalla tavalla kuin välitämme taulukon funktiolle, C++:n merkkijonot voidaan välittää funktioille merkkitaulukoina. Tässä esimerkkiohjelma:
Esimerkki:
C++
// C++ Program to print string using function> #include> using> namespace> std;> void> print_string(string s)> {> >cout <<>'Passed String is: '> << s << endl;> >return>;> }> int> main()> {> >string s =>'techcodeview.com'>;> >print_string(s);> >return> 0;> }> |
>
>Lähtö
Passed String is: techcodeview.com>
Osoittimet ja merkkijonot
Osoittimet C++:ssa ovat symbolisia osoitteiden esityksiä. Niiden avulla ohjelmat voivat simuloida puhelukohtaisesti sekä luoda ja käsitellä dynaamisia tietorakenteita. Osoittimia käyttämällä saadaan merkkijonon ensimmäinen merkki, joka on merkkijonon aloitusosoite. Kuten alla näkyy, annettua merkkijonoa voidaan käyttää ja tulostaa osoittimien kautta.
kuinka saada iphone emojit Androidille
Esimerkki:
C++
// C++ Program to print string using pointers> #include> using> namespace> std;> int> main()> {> >string s =>'Geeksforgeeks'>;> >// pointer variable declared to store the starting> >// address of the string> >char>* p = &s[0];> >// this loop will execute and print the character till> >// the character value is null this loop will execute and> >// print the characters> >while> (*p !=>' '>) {> >cout << *p;> >p++;> >}> >cout << endl;> >return> 0;> }> |
>
>Lähtö
Geeksforgeeks>
Ero merkkijonon ja merkkijonon välillä C++:ssa
Tärkein ero merkkijonon ja merkkijonon välillä on, että merkkijonot ovat muuttumattomia, kun taas merkkijonot eivät ole.
| merkkijono | Character Array |
|---|---|
| Merkkijonot määrittelevät objekteja, jotka voidaan esittää merkkijonovirroina. | Nollamerkki lopettaa merkkijonon. |
| Ei Array Decay esiintyy merkkijonoissa, koska merkkijonot esitetään objekteina. | Uhka joukon hajoaminen on läsnä merkkijonon tapauksessa |
| Merkkijonoluokka tarjoaa lukuisia toimintoja merkkijonojen käsittelyyn. | Merkkitaulukot eivät tarjoa sisäänrakennettuja toimintoja merkkijonojen käsittelyyn. |
| Muisti varataan dynaamisesti. | Merkkijoukon koko on allokoitava staattisesti. |
Tiedä lisää aiheesta ero merkkijonojen ja merkkijonojen välillä C++:ssa
C++ merkkijonofunktiot
C++ sisältää joitain sisäänrakennettuja toimintoja, joita käytetään merkkijonojen käsittelyyn, kuten strcpy()- ja strcat()-funktiot merkkijonojen kopioimiseen ja ketjuttamiseen. Jotkut niistä ovat:
| Toiminto | Kuvaus |
|---|---|
| pituus() | Tämä funktio palauttaa merkkijonon pituuden. |
| vaihtaa() | Tätä funktiota käytetään vaihtamaan 2 merkkijonon arvot. |
| koko() | Käytetään merkkijonon koon määrittämiseen |
| muuta kokoa() | Tätä toimintoa käytetään merkkijonon pituuden muuttamiseen annettuun merkkimäärään asti. |
| löytö() | Käytetään parametreissa välitettävän merkkijonon etsimiseen |
| työnnä takaisin() | Tätä toimintoa käytetään siirtämään välitetty merkki merkkijonon loppuun |
| pop_back() | Tätä toimintoa käytetään syöttämään merkkijonon viimeinen merkki |
| asia selvä() | Tätä toimintoa käytetään poistamaan kaikki merkkijonon elementit. |
| strncmp() | Tämä funktio vertaa korkeintaan molempien välitettyjen merkkijonojen ensimmäisiä tavuja. |
| strncpy() | Tämä funktio on samanlainen kuin strcpy()-funktio, paitsi että enintään n tavua src:stä kopioidaan |
| strrhr() | Tämä toiminto etsii merkin viimeisen esiintymän merkkijonossa. |
| murtunut () | Tämä funktio liittää kopion lähdemerkkijonosta kohdemerkkijonon loppuun |
| löytö() | Tätä toimintoa käytetään etsimään tiettyä osamerkkijonoa merkkijonon sisältä ja palauttaa alimerkkijonon ensimmäisen merkin sijainnin. |
| korvata() | Tätä funktiota käytetään korvaamaan jokainen vanhaa arvoa vastaava elementti alueella [ensimmäinen, viimeinen) uudella arvolla. |
| substr() | Tätä funktiota käytetään luomaan osamerkkijono annetusta merkkijonosta. |
| vertailla() | Tätä funktiota käytetään kahden merkkijonon vertaamiseen ja se palauttaa tuloksen kokonaisluvun muodossa. |
| Erase() | Tätä toimintoa käytetään poistamaan tietty osa merkkijonosta. |
C++ Strings-iteraattorifunktiot
C++:n sisäänrakennetut merkkijonoiteraattoritoiminnot tarjoavat ohjelmoijalle helpon tavan muokata ja selata merkkijonoelementtejä. Nämä toiminnot ovat:
| Toiminnot | Kuvaus |
|---|---|
| alkaa() | Tämä funktio palauttaa iteraattorin, joka osoittaa merkkijonon alkuun. |
| loppu () | Tämä funktio palauttaa iteraattorin, joka osoittaa merkkijonon loppuun. |
| rfind() | Tätä toimintoa käytetään etsimään merkkijonon viimeinen esiintymä. |
| rbegin() | Tämä funktio palauttaa käänteisen iteraattorin, joka osoittaa merkkijonon loppuun. |
| render() | Tämä funktio palauttaa käänteisen iteraattorin, joka osoittaa merkkijonon alkuun. |
| cbegin() | Tämä funktio palauttaa const_iterator-arvon, joka osoittaa merkkijonon alkuun. |
| muutama() | Tämä funktio palauttaa const_iterator-arvon, joka osoittaa merkkijonon loppuun. |
| crbegin() | Tämä funktio palauttaa const_reverse_iterator-funktion, joka osoittaa merkkijonon loppuun. |
| crend() | Tämä funktio palauttaa const_reverse_iterator-funktion, joka osoittaa merkkijonon alkuun. |
Esimerkki:
C++
// C++ Program to demonstrate string iterator functions> #include> using> namespace> std;> int> main()> {> >// declaring an iterator> >string::iterator itr;> >// declaring a reverse iterator> >string::reverse_iterator rit;> >string s =>'techcodeview.com'>;> >itr = s.begin();> > >cout <<>'Pointing to the start of the string: '> << *itr<< endl;> >itr = s.end() - 1;> >cout <<>'Pointing to the end of the string: '> << *itr << endl;> >rit = s.rbegin();> >cout <<>'Pointing to the last character of the string: '> << *rit << endl;> >rit = s.rend() - 1;> >cout <<>'Pointing to the first character of the string: '> << *rit << endl;> >return> 0;> }> |
>
>Lähtö
Pointing to the start of the string: G Pointing to the end of the string: s Pointing to the last character of the string: s Pointing to the first character of the string: G>
Merkkijonokapasiteettifunktiot
C++:ssa merkkijonokapasiteettifunktioita käytetään merkkijonon koon ja kapasiteetin hallintaan. Kapasiteetin ensisijaisia tehtäviä ovat:
| Toiminto | Kuvaus |
|---|---|
| pituus() | Tätä funktiota käytetään palauttamaan merkkijonon koko |
| kapasiteetti () | Tämä funktio palauttaa kapasiteetin, jonka kääntäjä on varannut merkkijonolle |
| muuta kokoa() | Tämän toiminnon avulla voimme suurentaa tai pienentää merkkijonon kokoa |
| kutistetaan sopivaksi() | Tämä toiminto pienentää kapasiteettia ja tekee siitä minimin. |
Esimerkki:
C++
#include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> > >// length function is used to print the length of the string> >cout <<>'The length of the string is '> << s.length() << endl;> > >// capacity function is used to print the capacity of the string> >cout <<>'The capacity of string is '> << s.capacity()<< endl;> > >// the string.resize() function is used to resize the string to 10 characters> >s.resize(10);> > >cout <<>'The string after using resize function is '> << s << endl;> > >s.resize(20);> > >cout <<>'The capacity of string before using shrink_to_fit function is '><< s.capacity() << endl;> > >// shrink to fit function is used to reduce the capacity of the container> >s.shrink_to_fit();> >cout <<>'The capacity of string after using shrink_to_fit function is '><< s.capacity() << endl;> >return> 0;> }> |
>
>Lähtö
The length of the string is 13 The capacity of string is 15 The string after using resize function is GeeksforGe The capacity of string before using shrink_to_fit function is 30 The capacity of string...>
Lopuksi, tämä artikkeli selittää, kuinka merkkijonoja voidaan uhmata C++:ssa käyttämällä merkkijonoja ja merkkijonoluokkia. Merkkijonoluokka tarjoaa kehittyneempiä ominaisuuksia, kun taas merkkijono tarjoaa perusominaisuudet, mutta on tehokas ja helppokäyttöinen. Tässä artikkelissa keskustelimme myös erilaisista tavoista ottaa palautetta käyttäjältä.
Jos haluat lisätietoja std::string-luokasta, katso artikkeli - std::merkkijonoluokka C++:ssa