C++ String Funktion: strcpy(), strcat(), strlen(), strcmp() Eksempel
Hvad er en streng?
En streng er en sekvens af tegn. EN C++ string er et objekt af std::string-klassen. Tegnene er lagrede sekvenser af bytes med adgang til en enkelt tegnbyte tilladt.
C++ strenge allokerer hukommelse dynamisk. Der kan tildeles mere hukommelse til strengen under kørselstiden, hvis det er nødvendigt. Da der ikke er nogen forhåndstildeling af hukommelse, ingen spild af hukommelse. Vi kan udføre forskellige operationer på strenge, herunder sammenligninger, sammenkædning, konvertering osv.
Erklærer strenge
C++ understøtter to typer strengdeklarationer:
- C-stil tegnstreng
- String klasse type
C-stil karakterstreng
Denne type strengdeklaration blev introduceret i C programmeringssprog. C++ fortsætter med at støtte det. Det er simpelthen en endimensionel række af tegn, der afsluttes med et nul-tegn (\0). En null-termineret streng har tegn, der udgør strengen, efterfulgt af en null.
Overvej strengerklæringen nedenfor:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
Ovenstående erklæring skaber en streng, der danner ordet John. Ordet har 4 tegn, men strengen har en størrelse på 5. Det ekstra mellemrum giver mulighed for at holde nul-tegnet.
Ved at bruge array-initialiseringsreglen kan vi skrive ovenstående sætning som følger:
char name[] = "John";
Bemærk, at du ikke behøver at placere null-tegnet i slutningen af strengkonstanten. De C++ compiler vil automatisk placere '\0' ved strengens ende, når arrayet initialiseres.
std::streng
Standarden C++ biblioteket leverer strengklassen, som understøtter forskellige strengoperationer. Det er skrevet som std::string.
For at bruge denne klasse skal vi først inkludere den i vores arbejdsområde ved hjælp af #include preprocessor som vist nedenfor:
#include<string>
Dernæst kan vi erklære vores streng ved hjælp af streng nøgleordet. For eksempel:
string name = "John";
Ovenstående sætning vil oprette en streng med navnet navn, der indeholder værdien John.
Adgang til strengværdier
In C++, kan vi få adgang til strengværdierne ved hjælp af strengnavnet. For eksempel:
#include <iostream> using namespace std; int main() { char name[5] = { 'J', 'o', 'h', 'n', '\0' }; cout << "String value is: "; cout << name << endl; return 0; }
Output:
Her er et skærmbillede af koden:
Kodeforklaring:
- Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
- Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
- Kalder main()-funktionen, hvori programmets logik skal tilføjes. { markerer starten af brødteksten af main()-funktionen.
- Erklærer en streng af tegn og giver den navnet navn. Strengen vil gemme værdien John. Det ekstra mellemrum gemmer null-tegnet.
- Udskriver noget tekst på konsollen.
- Udskrivning af værdien af strengnavnet på konsollen.
- Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
- Slutningen af hoveddelen af funktionen main().
Her er et andet eksempel ved hjælp af C++ standard streng klasse:
#include <iostream> #include <string> using namespace std; int main() { string name = "Guru99"; cout << "The name is : " << name << endl; return 0; }
Output:
Her er et skærmbillede af koden:
Kodeforklaring:
- Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
- Inkluderer standard strengklassen i vores kode.
- Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
- Kalder main()-funktionen, hvori programmets logik skal tilføjes. { markerer starten af brødteksten af main()-funktionen.
- Erklærer en streng og giver den navnet navn. Strengen vil gemme værdien Guru99.
- Udskrivning af værdien af strengnavnet sammen med noget tekst på konsollen.
- Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
- Slutningen af hoveddelen af funktionen main().
Stringfunktioner i C++
Du vil ofte ønske at manipulere strenge. C++ giver en lang række funktioner, som du kan bruge til dette. Disse funktioner er defineret i CString-klassen, derfor skal vi inkludere det i vores kode for at bruge funktionerne. Lad os diskutere nogle:
strcpy()
Dette er strengkopieringsfunktionen. Den kopierer en streng til en anden streng.
Syntaks:
strcpy(string1, string2);
De to parametre til funktionen, streng1 og streng2, er strenge. Funktionen kopierer strengen streng2 ind i streng1.
strcat()
Dette er strengsammenkædningsfunktionen. Det sammenkæder strenge.
Syntaks:
strcat(string1, string2);
De to parametre til funktionen, streng1 og streng2, er de strenge, der skal sammenkædes. Ovenstående funktion vil sammenkæde strengen streng2 til enden af strengen streng1.
strlen()
Dette er strenglængdefunktionen. Den returnerer længden af den streng, der er sendt til den som argument.
Syntaks:
strnlen(string1)
Parameteren string1 er navnet på den streng, hvis længde skal bestemmes. Ovenstående funktion returnerer længden af strengen streng1.
strcmp()
Dette er funktionen til sammenligning af strenge. Det bruges til strengsammenligning.
Syntaks:
strcmp(string1, string2);
Ovenstående funktion returnerer 0, hvis strenge streng1 og streng2 ligner hinanden, mindre end 0, hvis streng1 streng 2.
Eksempel:
Følgende eksempel viser, hvordan man bruger ovenstående strengfunktioner:
#include <iostream> #include <cstring> 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; }
Output:
Her er et skærmbillede af koden:
Kodeforklaring:
- Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
- Inklusive standard CString-klassen i vores kode.
- Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
- Kalder main()-funktionen, hvori programmets logik skal tilføjes. { markerer starten af brødteksten af main()-funktionen.
- Erklærer en streng på 10 tegn og giver den navnet name1. Strengen vil gemme værdien Guru99.
- Erklærer en streng på 10 tegn og giver den navnet name2. Strengen vil gemme værdien John.
- Erklærer en streng på 10 tegn og giver den navnet navn3.
- Erklærer en heltalsvariabel hedder len.
- Kopiering af strengnavn1 til strengnavn3.
- Udskrivning af værdien af strengnavnet1 sammen med noget tekst på konsollen. Den skal udskrive Guru99.
- Sammenkædning af strengene navn2 til slutningen af strengnavn1. Værdien af navn1 er nu Guru99John.
- Udskrivning af værdien af strengnavnet1 sammen med noget tekst på konsollen. Den skal udskrive Guru99John
- Bestemmelse af længden af strengen ved navn name1 og tildeling af længdeværdien til variabel len.
- Udskrivning af værdien af len variabel sammen med anden tekst på konsollen.
- Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
- Slutningen af hoveddelen af funktionen main().
Resumé
- En streng er en sekvens af tegn.
- Strings tilhører standard strengklassen i C++.
- Vi kan erklære strenge ved hjælp af C-stil tegnstrengen eller standard streng klasse.
- Strcpy()-funktionen kopierer en streng til en anden.
- Strcat()-funktionen sammenkæder to strenge.
- Strlen()-funktionen returnerer længden af en streng.
- Strcmp()-funktionen sammenligner to strenge.