Wat is een string?
Een string is een reeks karakters. Een C ++ - string is een object van de klasse std :: string. De tekens zijn opgeslagen reeksen bytes waarbij toegang tot een enkele tekenbyte is toegestaan.
C ++ - strings wijzen geheugen dynamisch toe. Indien nodig kan tijdens runtime meer geheugen aan de string worden toegewezen. Omdat er geen vooraf toegewezen geheugen is, is er geen geheugenverlies. We kunnen verschillende bewerkingen op strings uitvoeren, inclusief vergelijkingen, aaneenschakeling, conversie, enz.
In deze C ++ tutorial leer je:
- Wat is een string?
- Tekenreeksen declareren
- Tekenreeks in C-stijl
- std :: string
- Toegang tot tekenreekswaarden
- String Functies:
- strcpy ()
- strcat ()
- strlen ()
- strcmp ()
- Voorbeeld:
Tekenreeksen declareren
C ++ ondersteunt twee soorten stringverklaringen:
- Tekenreeks in C-stijl
- Type tekenreeksklasse
Tekenreeks in C-stijl
Dit type string-declaratie is geïntroduceerd in de C-programmeertaal. C ++ blijft het ondersteunen. Het is gewoon een eendimensionale reeks tekens die wordt beëindigd met een nul-teken (\ 0). Een string met een null-einde heeft tekens die de string vormen, gevolgd door een null.
Beschouw de onderstaande stringverklaring:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
De bovenstaande verklaring creëert een string die het woord John vormt. Het woord heeft 4 tekens, maar de tekenreeks heeft een grootte van 5. De extra spatie maakt het mogelijk om het nul-teken vast te houden.
Met behulp van de array-initialisatieregel kunnen we de bovenstaande instructie als volgt schrijven:
char name[] = "John";
Merk op dat u het nul-teken niet aan het einde van de tekenreeksconstante hoeft te plaatsen. De C ++ - compiler zal automatisch de '\ 0' aan het einde van de string plaatsen bij het initialiseren van de array.
std :: string
De standaard C ++ -bibliotheek biedt de tekenreeksklasse die verschillende tekenreeksbewerkingen ondersteunt. Het is geschreven als std :: string.
Om deze klasse te gebruiken, moeten we deze eerst in onze werkruimte opnemen met de #include preprocessor, zoals hieronder wordt weergegeven:
#include
Vervolgens kunnen we onze string declareren met behulp van het string-trefwoord. Bijvoorbeeld:
string name = "John";
De bovenstaande instructie maakt een tekenreeks met de naam name om de waarde John vast te houden.
Toegang tot tekenreekswaarden
In C ++ hebben we toegang tot de stringwaarden met behulp van de stringnaam. Bijvoorbeeld:
#includeusing namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}
Uitgang:
Hier is een screenshot van de code:
Code Verklaring:
- Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
- Inclusief de std-naamruimte om zijn klassen en functies te gebruiken zonder deze aan te roepen.
- De main () functie aanroepen waarbinnen de logica van het programma moet worden toegevoegd. De {markeert het begin van de hoofdtekst van de functie main ().
- Een reeks tekens declareren en deze de naam naam geven. De string zal de waarde John opslaan. De extra ruimte zal het nul-teken opslaan.
- Wat tekst afdrukken op de console.
- De waarde van de string met de naam name op de console afdrukken.
- De functie main () moet een waarde retourneren als het programma goed werkt.
- Einde van de hoofdtekst van de functie main ().
Hier is nog een voorbeeld met de C ++ standard string class:
#include#include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}
Uitgang:
Hier is een screenshot van de code:
Code Verklaring:
- Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
- Inclusief de standaard stringklasse in onze code.
- Inclusief de std-naamruimte om zijn klassen en functies te gebruiken zonder deze aan te roepen.
- De main () functie aanroepen waarbinnen de logica van het programma moet worden toegevoegd. De {markeert het begin van de hoofdtekst van de functie main ().
- Een string declareren en deze de naam naam geven. De string zal de waarde Guru99 opslaan.
- De waarde van de stringnaam naast wat tekst op de console afdrukken.
- De functie main () moet een waarde retourneren als het programma goed werkt.
- Einde van de hoofdtekst van de functie main ().
String Functies:
Je zult vaak strings willen manipuleren. C ++ biedt een breed scala aan functies die u hiervoor kunt gebruiken. Deze functies zijn gedefinieerd in de CString-klasse, daarom moeten we deze in onze code opnemen om de functies te kunnen gebruiken. Laten we er een paar bespreken:
strcpy ()
Dit is de functie voor het kopiëren van tekenreeksen. Het kopieert een string naar een andere string.
Syntaxis:
strcpy(string1, string2);
De twee parameters van de functie, string1 en string2, zijn strings. De functie kopieert de string string1 naar de string 1.
strcat ()
Dit is de functie voor het samenvoegen van tekenreeksen. Het voegt tekenreeksen samen.
Syntaxis:
strcat(string1, string2);
De twee parameters van de functie, string1 en string2, zijn de strings die aaneengeschakeld moeten worden. De bovenstaande functie zal de string string2 aan het einde van de string string1 samenvoegen.
strlen ()
Dit is de functie voor de lengte van de tekenreeks. Het retourneert de lengte van de tekenreeks die eraan is doorgegeven als het argument.
Syntaxis:
strnlen(string1)
De parameter string1 is de naam van de string waarvan de lengte moet worden bepaald. De bovenstaande functie retourneert de lengte van de string string1.
strcmp ()
Dit is de functie voor het vergelijken van tekenreeksen. Het wordt gebruikt voor het vergelijken van snaren.
Syntaxis:
strcmp(string1, string2);
De bovenstaande functie retourneert 0 als strings string1 en string2 vergelijkbaar zijn, kleiner dan 0 als string1
Voorbeeld:
Het volgende voorbeeld laat zien hoe u de bovenstaande tekenreeksfuncties kunt gebruiken:
#include#include using namespace std;int main() {char name1[10] = "Guru99";char name2[10] = "John";char name3[10];int len;strcpy(name3, name1);cout << "strcpy( name3, name1) : " << name3 << endl;strcat(name1, name2);cout << "strcat( name1, name2): " << name1 << endl;len = strlen(name1);cout << "strlen(name1) : " << len << endl;return 0;}
Uitgang:
Hier is een screenshot van de code:
Code Verklaring:
- Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
- Inclusief de standaard CString-klasse in onze code.
- Inclusief de std-naamruimte om zijn klassen en functies te gebruiken zonder deze aan te roepen.
- De main () functie aanroepen waarbinnen de logica van het programma moet worden toegevoegd. De {markeert het begin van de hoofdtekst van de functie main ().
- Declareer een string van 10 karakters en geef deze de naam name1. De string zal de waarde Guru99 opslaan.
- Declareer een string van 10 karakters en geef deze de naam name2. De string zal de waarde John opslaan.
- Declareer een string van 10 karakters en geef deze de naam name3.
- Declaratie van een integervariabele met de naam len.
- Kopiëren van de string name1 naar de string name3.
- De waarde van de string name1 afdrukken naast wat tekst op de console. Het zou Guru99 moeten afdrukken.
- Samenvoegen van de strings name2 tot het einde van string name1. De waarde van name1 is nu Guru99John.
- De waarde van de string name1 afdrukken naast wat tekst op de console. Het zou Guru99John moeten afdrukken
- Bepaal de lengte van de string met de naam name1 en wijs de waarde van length toe aan variabele len.
- De waarde van de variabele len naast een andere tekst op de console afdrukken.
- De functie main () moet een waarde retourneren als het programma goed werkt.
- Einde van de hoofdtekst van de functie main ().
Overzicht
- Een string is een reeks karakters.
- Strings behoren tot de standaard stringklasse in C ++.
- We kunnen strings declareren met behulp van de tekenreeks in C-stijl of de standaard stringklasse.
- De functie strcpy () kopieert de ene string naar de andere.
- De functie strcat () voegt twee functies samen.
- De functie strlen () geeft de lengte van een functie terug.
- De functie strcmp () vergelijkt twee strings.