strings c with examples
Et intensivt kig på det grundlæggende i strenge i C ++.
I denne C ++ - serie har vi indtil nu for det meste diskuteret numeriske arrays i C ++. I denne vejledning diskuterer vi manipulationen med karakterarrays, som vi simpelthen kalder 'Strings'.
Tegnarray er for det meste en streng i C-stil, som C ++ understøtter. Ud over C-stil tegnrække understøtter C ++ også en strengklasse “std :: string”. Derudover vil vi i denne vejledning diskutere begge typer strenge såvel som forskellen mellem dem og om programmering af hver type i C ++.
=> Hold øje med den komplette liste over C ++ tutorials i denne serie.
Hvad du vil lære:
Tegnarrays (C-stilstrenge)
C-stilstrengen er et tegnarray, der afsluttes med et nulltegn ' 0'. Derfor kan vi definere en matrix af typen char og dimensionerne eller størrelsen af arrays, og derefter kan vi initialisere den til en streng eller array af tegn.
Bemærk, at det er kompilatoren, der afslutter en streng med et null-tegn, så hvis vi initialiserer tegnarrayet med en streng (i det dobbelte citat ''), skal vi give ekstra plads til null-tegnet, mens vi erklærer størrelsen på en matrix .
Lad os tage nogle eksempler på at erklære og initialisere tegnarrays.
char firstStr() = 'This is Cstyle string'; char secStr(100) = {'s','o','f','t','w','a','r','e',' ','t','e','s','t','i','n','g',' ','h','e','l','p',' '}; char thirdStr() = {'h','e','l','l','o',' '};
Alle ovenstående definitioner er gyldige C-stil strengdefinitioner i C ++. Bemærk, at vi enten kan erklære den faktiske størrelse, eller vi kan lade størrelsen være tom, så compileren kan rumme størrelsen afhængigt af den streng, vi initialiserede.
Lad os tage en Eksempel af læsning og skrivning af tegnarray i C ++
Nedenfor er et simpelt program, der læser strengen ved hjælp af cin og udsender den ved hjælp af cout.
#include #include using namespace std; int main() { char firstStr(100); cin>>firstStr; cout<<'you entered : '< Udgang 1:
SoftwareTestingHelp.com
du indtastede: SoftwareTestingHelp.com
Udgang 2:
Dette er streng i C-stil
du indtastede: Dette
Hvis vi sammenligner begge output, ser vi, at da vi indtastede den første streng “SoftwareTestingHelp.com”, blev den udskrevet som den er.
Men i den anden output, selvom vi indtastede strengen som “Dette er C-stil streng”, var output kun “Dette”.
Forskellen i output skyldes, at '>>' operatør af cin, der bruges til at læse strengen, behandles som 'scanf' funktion af C, som kun læser indtil det rum, der er stødt på. Derfor er 'cin med >>' velegnet til at læse tegneserier uden plads.
erstatning streaming film site for film 4k
Derfor, mens det andet outputrum blev stødt, tog cin-funktionen det som slutningen af strengen og læste kun det første ord.
For at læse en hel linje med tegn inklusive mellemrum bruger C ++ funktionen 'get'.
Et eksempel på et program, der bruger get-funktionen, vises nedenfor:
#include #include using namespace std; int main() { char firstStr(100); cin.get(firstStr,100); cout<<'you entered : '< Produktion:
Dette er softwareTestinghelp.com
du indtastede: Dette er softwareTestinghelp.com
Som vist i eksemplet , bruger cin-funktionen to argumenter. Det første argument er den variabel med tegnarray, hvor strengen skal læses, mens det andet argument er den maksimale størrelse af arrayet.
C-stilstrenge understøtter også adskillige strengefunktioner, som giver brugerne mulighed for at manipulere strengene. Disse funktioner er defineret i overskriften “cstring”.
Vi præsenterer en tabel nedenfor, der viser forskellige strengfunktioner, der kan bruges til at manipulere C-stilstrenge.
Lade være med Fungere Argumenter Beskrivelse 1 strcpy s1, s2 Kopierer streng s2 til streng s1 to strcat s1,s2 Tilføjer eller sammenkæder streng s2 til slutningen af streng s1 3 strlen s1 Returnerer længden af streng s1 4 strcmp s1,s2 Returnerer 0: s1 og s2 er ens
<0:s1 >0:s1>s2 5 strchr s1, kap Returnerer en markør til den første forekomst af tegn ch i streng s1og strengen derfra og frem 6 strstr s1,s2 Returnerer første forekomst af streng s2 i streng s1
Følgende program viser brugen af nogle af disse funktioner i C ++:
#include #include using namespace std; int main() { char firstStr(50) = 'This is softwareTestingHelp.com'; char secStr(50) = 'a testing platform'; int len = strlen(firstStr); cout<<'Length of firstStr : '< Produktion:
Længde på førsteStr: 31
Resulterende streng (secStr): softwareTesting
Sammenligning af firstStr og secStr: -31
Sammenkædet secStr: softwareTest til dig
Første forekomst af i i første str på: s er softwareTestingHelp.com
Strengklasse i C ++
Streng i C ++, der er defineret af klassen “std :: string” er en repræsentation af strømmen af tegn til et objekt. Med andre ord er strengklasse en samling af strengobjekter. Denne strengklasse er en del af std-navneområdet og er defineret i overskriften 'string.h'.
Lad os diskutere nogle af de grundlæggende forskelle mellem strengklasse og tegnarray.
- Mens de tegnarrays, vi diskuterede ovenfor, er statisk tildelt i løbet af kompileringstiden, er strenge objekter og kan derfor allokeres dynamisk.
- Da tegneserier er statiske, kan de ikke krympes eller udvides, når de er defineret. Derfor, hvis vi har et tegnarray af størrelse 100, og jeg initialiserede det til ordet 'Hej', så spildes det resterende rum.
Char mystr (100) = “Hej”;
Her spildes de resterende 95 placeringer.
I modsætning til dette er strengobjekter dynamiske og tager den nøjagtige plads til værdien.
- Karakterarrays er hurtigere i ydeevne, mens strengene er langsommere.
- Karakterarrays har få funktioner, der fungerer på dem, som kan manipulere dem. Strengklasse har mange funktioner, herunder iteratorfunktionerne.
Dette er nogle af de grundlæggende forskelle mellem tegnarray og strengobjektklasse.
Dernæst vil vi se et par eksempler på strengklasse sammen med nogle grundlæggende operationer, der udføres på objekter i strengklassen.
Et eksempel til at erklære og initialisere strengklassen.
#include #include using namespace std; int main() { string str='This is string object in C++'; cout<<'
String entered is :'<I ovenstående eksempel har vi deklareret og initialiseret et strengobjekt ved hjælp af klassen 'streng'. Dette er et simpelt eksempel. Lad os nu have et program til at læse strengen fra brugeren og også demonstrere få strengfunktioner, herunder find længden og sammenlign to strenge.
#include #include using namespace std; int main() { string str; cout<<'Input the string
'; getline(cin,str); cout<<'
String entered is :'< Produktion:
Indtast strengen
SoftwareTestingHjælp
Den indtastede streng er: SoftwareTestingHelp
Strengens længde er: 19
To strenge er ens
Ny str1: SoftwareTestingHelp.com
str ny længde: 0
I ovenstående illustration har vi brugt adskillige strengfunktioner til at manipulere strengene. Efter at have erklæret strengen bruger vi 'getline' -funktionen i strengklassen til at læse strengen fra standardindgangen.
Når vi først har læst strengen, finder vi dens længde ved hjælp af 'længde' -funktionen. Hvis vi har brug for at sammenligne to strenge for at evaluere, om de er ens eller ikke, kan vi bruge 'sammenligne' -funktionen i strengklassen. Hvis funktionen returnerer 0, er de to strenge ens, ellers returnerer funktionen en værdi, der ikke er nul.
Endnu en funktion er at tilføje en anden streng til slutningen af den eksisterende streng. Dette er 'tilføj' -funktionen. I dette eksempel tilføjer vi '.com' til den allerede eksisterende streng str1 med værdien 'softwaretesting'.
Den sidste funktion i eksemplet er den klare funktion, der bruges til at rydde indholdet af det påkaldte strengobjekt. I dette eksempel rydder vi indholdet af str-objektet, så dets længde bliver 0.
Konklusion
I denne vejledning har vi dækket tegnarrayet, der også kaldes C-stilstrenge sammen med det grundlæggende i strengklassen. Strengklasse kommer med flere hjælpeprogrammer som iterator klasse, da det er en container klasse.
Vi vil se mere om strengklasse og dens funktioner i vores kommende STL-tutorials !!
=> Besøg her for at se C ++ træningsserien for alle.
Anbefalet læsning
- Shell Sort In C ++ med eksempler
- Funktioner til dato og tid i C ++ med eksempler
- Java String med String Buffer og String Builder Tutorial
- Valg af sortering i C ++ med eksempler
- Python-strengfunktioner
- Python DateTime-tutorial med eksempler
- Klip kommando i Unix med eksempler
- 70+ BEST C ++ tutorials til at lære C ++ programmering GRATIS