C++-strängar är sekvenser av tecken lagrade i en char-array. Strängar används för att lagra ord och text. De används också för att lagra data, såsom nummer och annan typ av information. Strängar i C++ kan definieras antingen med hjälp av std::string klass eller den C-stil tecken arrayer.

1. C Style Strings
Dessa strängar lagras som den vanliga gamla uppsättningen av tecken som avslutas av en nolltecken ' ' . De är den typ av strängar som C++ ärvde från C-språket.
Syntax:
char str[] = 'techcodeview.com';>
Exempel:
C++
// C++ Program to demonstrate strings> #include> using> namespace> std;> int> main()> {> >char> s[] =>'techcodeview.com'>;> >cout << s << endl;> >return> 0;> }> |
>
>Produktion
techcodeview.com>
2. std::string Klass
Det här är de nya typerna av strängar som introduceras i C++ som std::string-klass definierad i rubrikfilen. Detta ger många fördelar jämfört med konventionella strängar i C-stil, såsom dynamisk storlek, medlemsfunktioner, etc.
Syntax:
std::string str('techcodeview.com');> Exempel:
C++
// C++ program to create std::string objects> #include> using> namespace> std;> int> main()> {> >string str(>'techcodeview.com'>);> >cout << str;> >return> 0;> }> |
>
>Produktion
techcodeview.com>
Ytterligare ett sätt kan vi göra strängar som har samma karaktär som upprepas om och om igen.
Syntax:
std::string str(number,character);>
Exempel:
C++
#include> using> namespace> std;> int> main()> {> >string str(5,>'g'>);> >cout << str;> >return> 0;> }> |
>
>
Produktion:
ggggg>
Sätt att definiera en sträng i C++
Strängar kan definieras på flera sätt i C++. Strängar kan nås från standardbiblioteket med strängklassen. Teckenmatriser kan också användas för att definiera strängar. String tillhandahåller en rik uppsättning funktioner, som sökning och manipulering, som är vanliga metoder. Trots att den är mindre avancerad än strängklassen, används denna metod fortfarande flitigt, eftersom den är effektivare och enklare att använda. Sätt att definiera en sträng i C++ är:
- Använder String nyckelord
- Använder strängar i C-stil
1. Använda strängen Keyword
Det är bekvämare att definiera en sträng med nyckelordet sträng istället för att använda nyckelordet array eftersom det är lätt att skriva och förstå.
Syntax:
string s = 'techcodeview.com'; string s('techcodeview.com');> Exempel:
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;> }> |
>
>Produktion
s = techcodeview.com str = techcodeview.com>
2. Använd strängar i C-stil
Använda strängbiblioteksfunktioner i C-stil som strcpy(), strcmp() och strcat() för att definiera strängar. Den här metoden är mer komplex och används inte lika ofta som de andra två, men den kan vara användbar när du hanterar äldre kod eller när du behöver prestanda.
char s[] = {'g', 'f', 'g', ' '}; char s[4] = {'g', 'f', 'g', ' '}; char s[4] = 'gfg'; char s[] = 'gfg';> Exempel:
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;> }> |
>
>Produktion
s1 = gfg s2 = gfg s3 = gfg s4 = gfg>
Ett annat exempel på sträng i C-stil:
C++
#include> using> namespace> std;> int> main()> {> >string S =>'Geeeks for Geeks'>;> >cout <<>'Your string is= '>;> >cout << S << endl;> >return> 0;> }> |
>
>Produktion
Your string is= Geeeks for Geeks>
Hur man tar stränginmatning i C++
Stränginmatning innebär att acceptera en sträng från en användare. I C++. Vi har olika typer av att ta input från användaren som beror på strängen. Det vanligaste sättet är att ta input med äter nyckelord med extraktionsoperatorn (>>) i C++. Metoder för att ta en sträng som indata är:
- äter
- getline
- strängström
1. Använda Cin
Det enklaste sättet att ta stränginmatning är att använda äter kommando tillsammans med strömextraktionsoperatören (>>).
Syntax:
cin>>s;>
Exempel:
C++
pyspark sql
// 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; }> |
>
>Produktion
Enter String String is:>
Produktion:
Enter String techcodeview.com String is: techcodeview.com>
2. Använda getline
De getline() funktion i C++ används för att läsa en sträng från en ingångsström. Det deklareras i rubrikfilen.
Syntax:
getline(cin,s);>
Exempel:
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;> }> |
>
>Produktion
Enter String String is:>
Produktion:
Enter String techcodeview.com String is: techcodeview.com>
3. Använd stringstream
De stringstream klass i C++ används för att ta flera strängar som indata samtidigt.
Syntax:
java math.random
stringstream stringstream_object(string_name);>
Exempel:
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;> >//>> kommer operatorn att läsa från stringstream-objektet> >while> (obj>> temp) {> >cout << temp << endl;> >}> >return> 0;> }> |
>
>Produktion
techcodeview.com to the Moon>
Hur skickar man strängar till funktioner?
På samma sätt som vi skickar en array till en funktion kan strängar i C++ skickas till funktioner som teckenarrayer. Här är ett exempelprogram:
Exempel:
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;> }> |
>
>Produktion
Passed String is: techcodeview.com>
Pekare och strängar
Pekare i C++ är symboliska representationer av adresser. De gör det möjligt för program att simulera call-by-referens samt att skapa och manipulera dynamiska datastrukturer. Genom att använda pekare kan vi få det första tecknet i strängen, vilket är startadressen för strängen. Som visas nedan kan den givna strängen nås och skrivas ut genom pekarna.
Exempel:
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;> }> |
>
>Produktion
Geeksforgeeks>
Skillnad mellan String och Character array i C++
Den största skillnaden mellan en sträng och en teckenuppsättning är att strängar är oföränderliga, medan teckenuppsättningar inte är det.
| Sträng | Character Array |
|---|---|
| Strängar definierar objekt som kan representeras som strängströmmar. | Nulltecknet avslutar en teckenuppsättning av tecken. |
| Inget arrayförfall inträffar i strängar eftersom strängar representeras som objekt. | Hotet om array förfall finns i fallet med teckenuppsättningen |
| En strängklass tillhandahåller många funktioner för att manipulera strängar. | Teckenmatriser erbjuder inte inbyggda funktioner för att manipulera strängar. |
| Minnet allokeras dynamiskt. | Storleken på teckenuppsättningen måste allokeras statiskt. |
Lär dig mer om skillnad mellan strängar och teckenmatriser i C++
C++ strängfunktioner
C++ tillhandahåller några inbyggda funktioner som används för strängmanipulation, såsom funktionerna strcpy() och strcat() för att kopiera och sammanfoga strängar. Några av dem är:
| Fungera | Beskrivning |
|---|---|
| längd() | Denna funktion returnerar längden på strängen. |
| byta() | Denna funktion används för att byta värden på 2 strängar. |
| storlek() | Används för att hitta storleken på strängen |
| ändra storlek() | Denna funktion används för att ändra storleken på strängen upp till det givna antalet tecken. |
| hitta() | Används för att hitta strängen som skickas i parametrar |
| trycka tillbaka() | Denna funktion används för att trycka det godkända tecknet i slutet av strängen |
| pop_back() | Denna funktion används för att poppa det sista tecknet från strängen |
| klar() | Denna funktion används för att ta bort alla element i strängen. |
| strncmp() | Den här funktionen jämför som mest de första antalet byte av båda passerade strängarna. |
| strncpy() | Denna funktion liknar strcpy()-funktionen, förutom att högst n byte av src kopieras |
| strrchr() | Denna funktion lokaliserar den sista förekomsten av ett tecken i strängen. |
| strach() | Den här funktionen lägger till en kopia av källsträngen i slutet av målsträngen |
| hitta() | Denna funktion används för att söka efter en viss delsträng inuti en sträng och returnerar positionen för det första tecknet i delsträngen. |
| byta ut() | Denna funktion används för att ersätta varje element i intervallet [första, sista) som är lika med gammalt värde med nytt värde. |
| substr() | Denna funktion används för att skapa en delsträng från en given sträng. |
| jämföra() | Denna funktion används för att jämföra två strängar och returnerar resultatet i form av ett heltal. |
| radera() | Denna funktion används för att ta bort en viss del av en sträng. |
C++ Strings iteratorfunktioner
I C++ ger inbyggda strängiteratorfunktioner programmeraren ett enkelt sätt att modifiera och gå igenom strängelement. Dessa funktioner är:
| Funktioner | Beskrivning |
|---|---|
| Börja() | Denna funktion returnerar en iterator som pekar på början av strängen. |
| slutet() | Denna funktion returnerar en iterator som pekar mot slutet av strängen. |
| rfind() | Denna funktion används för att hitta strängens senaste förekomst. |
| rbegin() | Denna funktion returnerar en omvänd iterator som pekar mot slutet av strängen. |
| framställa() | Denna funktion returnerar en omvänd iterator som pekar på början av strängen. |
| cbegin() | Denna funktion returnerar en const_iterator som pekar på början av strängen. |
| några() | Denna funktion returnerar en const_iterator som pekar mot slutet av strängen. |
| crbegin() | Denna funktion returnerar en const_reverse_iterator som pekar mot slutet av strängen. |
| crend() | Denna funktion returnerar en const_reverse_iterator som pekar på början av strängen. |
Exempel:
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;> }> |
>
>Produktion
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>
Strängkapacitetsfunktioner
I C++ används strängkapacitetsfunktioner för att hantera strängstorlek och kapacitet. Primära funktioner för kapacitet inkluderar:
| Fungera | Beskrivning |
|---|---|
| längd() | Denna funktion används för att returnera storleken på strängen |
| kapacitet() | Denna funktion returnerar den kapacitet som tilldelas strängen av kompilatorn |
| ändra storlek() | Denna funktion låter oss öka eller minska strängstorleken |
| krymp för att passa() | Denna funktion minskar kapaciteten och gör den lika med minimum. |
Exempel:
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;> }> |
>
>Produktion
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...>
Sammanfattningsvis förklarar den här artikeln hur strängar kan trotsas i C++ med hjälp av teckenmatriser och strängklasser. Strängklassen ger mer avancerade funktioner, medan teckenuppsättningen ger grundläggande funktioner men är effektiv och enkel att använda. I den här artikeln diskuterade vi också de olika metoderna för att ta input från användaren.
För att veta mer om std::string class, se artikeln – std::string class i C++