strings c with examples
En intensiv titt på det grunnleggende om strenger i C ++.
I denne C ++ -serien har vi til nå for det meste diskutert numeriske matriser i C ++. I denne opplæringen vil vi diskutere manipulering med karakteroppsett som vi bare kaller 'Strenger'.
Tegnmatrise er for det meste en streng i C-stil som C ++ støtter. I tillegg til karakteroppsett i C-stil støtter C ++ også en strengklasse “std :: string”. Videre, i denne opplæringen, vil vi diskutere begge typer strengene, så vel som forskjellen mellom dem og om programmering av hver type i C ++.
=> Se opp den komplette listen over C ++ opplæringsprogrammer i denne serien.
Hva du vil lære:
Karakterarrayer (C-stilstrenger)
C-stilstrengen er en tegnoppstilling som avsluttes med nulltegnet ' 0'. Derfor kan vi definere en matrise av typen char og dimensjonene eller størrelsen på matrisen, og så kan vi initialisere den til en streng eller en rekke tegn.
Merk at det er kompilatoren som avslutter en streng med et nulltegn, så hvis vi initialiserer tegnmatrisen med en streng (i det dobbelte sitatet ''), må vi gi ekstra plass til nulltegnet mens vi erklærer størrelsen på en matrise. .
La oss ta noen eksempler på å erklære og initialisere tegnsett.
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 definisjonene ovenfor er gyldige strengdefinisjoner i C-stil i C ++. Merk at vi enten kan erklære den faktiske størrelsen, eller så kan vi la størrelsen være tom, slik at kompilatoren kan imøtekomme størrelsen, avhengig av strengen vi initialiserte.
La oss ta opp en Eksempel av lese- og skrivekarakter i C ++
Nedenfor er et enkelt program som leser strengen ved hjelp av cin og sender den ut med cout.
#include #include using namespace std; int main() { char firstStr(100); cin>>firstStr; cout<<'you entered : '< Utgang 1:
SoftwareTestingHelp.com
du skrev inn: SoftwareTestingHelp.com
Utgang 2:
Dette er streng i C-stil
du skrev inn: Dette
Hvis vi sammenligner begge utdataene, ser vi at når vi skrev inn den første strengen “SoftwareTestingHelp.com”, ble den skrevet ut som den er.
Men i den andre utgangen, selv om vi skrev inn strengen som “Dette er C-stilstreng”, var utgangen bare “Dette”.
Forskjellen i utgang er fordi '>>' operatør av cin som brukes til å lese strengen behandles som 'scanf' funksjon av C, som bare leser til plassen du opplever. Derfor er 'cin med >>' egnet til å lese tegnsett uten plass.
hvordan man skriver tilfeller med regresjonstest
Derfor, mens det andre utdataområdet ble oppstått, tok cin-funksjonen det som slutten på strengen og leste bare det første ordet.
For å lese en hel linje med tegn inkludert mellomrom, bruker C ++ “get” -funksjonen.
Et eksempel på program som bruker get-funksjonen er vist nedenfor:
#include #include using namespace std; int main() { char firstStr(100); cin.get(firstStr,100); cout<<'you entered : '< Produksjon:
Dette er softwareTestinghelp.com
du kom inn: Dette er softwareTestinghelp.com
Som vist i eksemplet , får funksjonen til cin to argumenter. Det første argumentet er variabelen for tegnmatrisen der strengen skal leses mens det andre argumentet er den maksimale størrelsen på matrisen.
Strenger i C-stil støtter også mange strengfunksjoner som lar brukerne manipulere strengene. Disse funksjonene er definert i overskriften 'cstring'.
Vi presenterer en tabell nedenfor som viser forskjellige strengfunksjoner som kan brukes til å manipulere C-stilstrenger.
Ikke Funksjon Argumenter Beskrivelse 1 strcpy s1, s2 Kopierer streng s2 til streng s1 to strcat s1, s2 Legger til eller sammenkobler streng s2 til slutten av streng s1 3 strlen s1 Returnerer lengden på strengen s1 4 strcmp s1, s2 Returnerer 0: s1 og s2 er like
<0:s1 > 0: s1> s2 5 strchr s1, kap Returnerer en peker til første forekomst av tegn ch i streng s1og strengen derfra og utover 6 strstr s1, s2 Returnerer første forekomst av streng s2 i streng s1
Følgende program viser bruken av noen av disse funksjonene 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 : '< Produksjon:
Lengde på førsteStr: 31
Resultatstreng (secStr): softwareTesting
Sammenligning av firstStr og secStr: -31
Sammenkoblet sekStr: programvaretest for deg
Den første forekomsten av jeg i firststr at: s er softwareTestingHelp.com
Strengklasse i C ++
Streng i C ++ som er definert av klassen “std :: string” er en representasjon av strømmen av tegn til et objekt. Med andre ord er strengklasse en samling strengobjekter. Denne strengklassen er en del av std-navneområdet og er definert i overskriften 'string.h'.
La oss diskutere noen av de grunnleggende forskjellene mellom strengklasse og tegnmatrise.
- Mens tegnsettene vi diskuterte ovenfor er statisk tildelt i løpet av kompileringstiden, er strenger objekter og kan dermed tildeles dynamisk.
- Ettersom tegneserier er statiske, kan de ikke krympes eller utvides når de er definert. Derfor, hvis vi har et tegnoppsett på størrelse 100, og jeg initialiserte det til ordet 'Hei', blir den resterende plassen bortkastet.
Char mystr (100) = “Hei”;
Her er de resterende 95 stedene bortkastet.
I motsetning til dette er strengobjekter dynamiske og vil ta opp nøyaktig plass for verdien.
- Tegnoppsett har raskere ytelse mens strengene er tregere.
- Tegnoppsett har få funksjoner som fungerer på dem som kan manipulere dem. Strengklassen har mange funksjoner, inkludert iteratorfunksjonene.
Dette er noen av de grunnleggende forskjellene mellom tegnmatrisen og strengobjektklassen.
Deretter vil vi se noen få eksempler på strengklasse sammen med noen grunnleggende operasjoner som utføres på objekter i strengklassen.
Et eksempel for å 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 eksemplet ovenfor har vi deklarert og initialisert et strengobjekt ved hjelp av klassen 'streng'. Dette er et enkelt eksempel. La oss nå ha et program for å lese strengen fra brukeren og også demonstrere få strengfunksjoner, inkludert finn lengden og sammenlign to strenger.
#include #include using namespace std; int main() { string str; cout<<'Input the string
'; getline(cin,str); cout<<'
String entered is :'< Produksjon:
Skriv inn strengen
ProgramvaretestingHjelp
Streng som er angitt er: SoftwareTestingHelp
Lengden på strengen er: 19
To strenger er like
Ny str1: SoftwareTestingHelp.com
str ny lengde: 0
I illustrasjonen ovenfor har vi brukt mange strengfunksjoner for å manipulere strengene. Etter å ha erklært strengen bruker vi 'getline' -funksjonen til strengklassen for å lese strengen fra standardinngangen.
Når vi har lest strengen, finner vi lengden ved hjelp av 'lengde' -funksjonen. Hvis vi trenger å sammenligne to strenger for å vurdere om de er like eller ikke, kan vi bruke 'sammenligne' -funksjonen til strengklassen. Hvis funksjonen returnerer 0, er de to strengene like, ellers returnerer funksjonen en verdi som ikke er null.
Nok en funksjon er å legge til en annen streng til slutten av den eksisterende strengen. Dette er 'legg til' -funksjonen. I dette eksemplet legger vi '.com' til den allerede eksisterende strengen str1 med verdien 'softwaretesting'.
Den siste funksjonen i eksemplet er den klare funksjonen som brukes til å fjerne innholdet i påkallende strengobjekt. I dette eksemplet tømmer vi innholdet i str-objektet slik at lengden blir 0.
Konklusjon
I denne opplæringen har vi dekket tegnmatrisen som også kalles C-stilstrenger sammen med det grunnleggende i strengklassen. Strengklasse kommer med flere verktøy som iteratorklasse, da det er en containerklasse.
Vi vil se mer om strengklasse og dens funksjoner i de kommende STL-opplæringene !!
=> Besøk her for å se C ++ treningsserien for alle.
Anbefalt lesing
- Skalsortering i C ++ med eksempler
- Funksjoner for dato og tid i C ++ med eksempler
- Java String with String Buffer and String Builder Tutorial
- Utvalgssortering i C ++ med eksempler
- Python-strengfunksjoner
- Python DateTime Tutorial med eksempler
- Klipp kommandoen i Unix med eksempler
- 70+ BEST C ++ opplæringsprogrammer for å lære C ++ programmering GRATIS