Vad är en sträng?
En sträng är en sekvens av tecken. En C ++ -sträng är ett objekt av klassen std :: string. Tecknen är lagrade sekvenser av byte med åtkomst till en enda teckenbyte tillåten.
C ++ - strängar tilldelar minne dynamiskt. Mer minne kan tilldelas strängen under körning vid behov. Eftersom det inte finns någon minnesfördelning, inget slöseri med minnet. Vi kan utföra olika operationer på strängar, inklusive jämförelser, sammankoppling, konvertering, etc.
I denna C ++ -handledning lär du dig:
- Vad är en sträng?
- Deklarera strängar
- C-Style Character String
- std :: sträng
- Åtkomst till strängvärden
- Strängfunktioner:
- strcpy ()
- strcat ()
- strlen ()
- strcmp ()
- Exempel:
Deklarera strängar
C ++ stöder två typer av strängdeklarationer:
- C-stil karaktärssträng
- Strängklass typ
C-Style Character String
Denna typ av strängdeklaration introducerades på C-programmeringsspråk. C ++ fortsätter att stödja det. Det är helt enkelt en endimensionell uppsättning tecken som avslutas med ett null-tecken (\ 0). En nollavslutad sträng har tecken som utgör strängen följt av en noll.
Tänk på strängdeklarationen nedan:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
Ovanstående deklaration skapar en sträng som bildar ordet John. Ordet har fyra tecken, men strängen har en storlek på 5. Det extra utrymmet gör det möjligt att hålla nollkaraktären.
Med hjälp av arrayinitieringsregeln kan vi skriva ovanstående uttalande enligt följande:
char name[] = "John";
Observera att du inte behöver placera null-tecknet i slutet av strängkonstanten. C ++ - kompilatorn placerar automatiskt '\ 0' i strängens slut när matrisen initialiseras.
std :: sträng
Standard C ++ - biblioteket tillhandahåller strängklassen som stöder olika strängoperationer. Det är skrivet som std :: string.
För att använda den här klassen måste vi först inkludera den i vår arbetsyta med #include preprocessor enligt nedan:
#include
Därefter kan vi deklarera vår sträng med hjälp av strängordet. Till exempel:
string name = "John";
Ovanstående uttalande skapar en sträng med namnet för att hålla värdet John.
Åtkomst till strängvärden
I C ++ kan vi komma åt strängvärdena med hjälp av strängnamnet. Till exempel:
#includeusing namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}
Produktion:
Här är en skärmdump av koden:
Kodförklaring:
- Inkluderar iostream-rubrikfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
- Inklusive std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
- Ringer till huvudfunktionen () inom vilken programmets logik ska läggas till. {Markerar början av huvudfunktionen ().
- Deklarera en rad tecken och ge den namnet. Strängen lagrar värdet John. Det extra utrymmet lagrar nollkaraktären.
- Skriva ut lite text på konsolen.
- Utskrift av värdet på strängen med namnet på konsolen.
- Huvudfunktionen () ska returnera ett värde om programmet går bra.
- Slutet på huvudfunktionens () kropp.
Här är ett annat exempel som använder C ++ - standardsträngklassen:
#include#include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}
Produktion:
Här är en skärmdump av koden:
Kodförklaring:
- Inkluderar iostream-rubrikfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
- Inkluderar standardsträngklassen i vår kod.
- Inklusive std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
- Ringer till huvudfunktionen () inom vilken programmets logik ska läggas till. {Markerar början av huvudfunktionen ().
- Deklarera en sträng och ge den namnet. Strängen lagrar värdet Guru99.
- Skriva ut värdet på strängnamnet tillsammans med lite text på konsolen.
- Huvudfunktionen () ska returnera ett värde om programmet går bra.
- Slutet på huvudfunktionens () kropp.
Strängfunktioner:
Du vill ofta manipulera strängar. C ++ erbjuder ett brett utbud av funktioner som du kan använda för detta. Dessa funktioner definieras i CString-klassen, därför måste vi inkludera den i vår kod för att kunna använda funktionerna. Låt oss diskutera några:
strcpy ()
Detta är strängkopieringsfunktionen. Den kopierar en sträng till en annan sträng.
Syntax:
strcpy(string1, string2);
De två parametrarna till funktionen, sträng1 och sträng2, är strängar. Funktionen kopierar strängsträngen 1 till strängen 1.
strcat ()
Detta är strängens sammanfogningsfunktion. Det sammanfogar strängar.
Syntax:
strcat(string1, string2);
De två parametrarna till funktionen, sträng1 och sträng2 är strängarna som ska sammanfogas. Ovanstående funktion sammanfogar strängsträngen 2 till slutet av strängsträngen1.
strlen ()
Detta är stränglängdsfunktionen. Den returnerar längden på strängen som skickats till den som argument.
Syntax:
strnlen(string1)
Parametersträngen 1 är namnet på strängen vars längd ska bestämmas. Ovanstående funktion returnerar längden på strängsträngen1.
strcmp ()
Detta är strängjämförelsefunktionen. Den används för strängjämförelse.
Syntax:
strcmp(string1, string2);
Ovanstående funktion returnerar 0 om strängar sträng1 och sträng2 är lika, mindre än 0 om sträng1
Exempel:
Följande exempel visar hur du använder ovanstående strängfunktioner:
#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;}
Produktion:
Här är en skärmdump av koden:
Kodförklaring:
- Inkluderar iostream-rubrikfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
- Inklusive standardklassen CString i vår kod.
- Inklusive std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
- Ringer till huvudfunktionen () inom vilken programmets logik ska läggas till. {Markerar början av huvudfunktionen ().
- Förklara en sträng på 10 tecken och ge den namnet 1. Strängen lagrar värdet Guru99.
- Förklara en sträng på 10 tecken och ge den namnet 2. Strängen lagrar värdet John.
- Förklara en sträng på 10 tecken och ge den namnet 3.
- Förklarar en heltalsvariabel med namnet len.
- Kopiera strängnamn1 till strängnamn3.
- Skriva ut värdet på strängnamnet1 tillsammans med lite text på konsolen. Det borde skriva ut Guru99.
- Sammanfoga strängarnas namn2 till slutet av strängens namn1. Värdet på namn1 är nu Guru99John.
- Skriva ut värdet på strängnamnet1 tillsammans med lite text på konsolen. Det borde skriva ut Guru99John
- Bestämma längden på strängen som heter name1 och tilldela längden till variabel len.
- Skriva ut värdet på len variabel tillsammans med någon annan text på konsolen.
- Huvudfunktionen () ska returnera ett värde om programmet går bra.
- Slutet på huvudfunktionens () kropp.
Sammanfattning
- En sträng är en sekvens av tecken.
- Strängar tillhör standardsträngklassen i C ++.
- Vi kan deklarera strängar med hjälp av C-stil teckensträng eller standardsträngklass.
- Funktionen strcpy () kopierar en sträng till en annan.
- Funktionen strcat () sammanfogar två funktioner.
- Funktionen strlen () returnerar längden på en funktion.
- Funktionen strcmp () jämför två strängar.