Strenger på C -språk

Strenger på C -språk

Strenger brukes ofte på C -språket. Gjennom dem viser et program meldingene eller resultatene til brukeren, legger inn informasjonen i systemet, genererer eller konsulterer informasjonen i databaser, sammenligner eller søker etter ord i en tekst osv. De brukes også til funksjonene for å spesifisere filstiene, velg arbeidskatalogene osv.

I denne Linux -hint -artikkelen vil du lære alt om strenger. Vi vil forklare fra bunnen av hva en streng er, hvilke elementer den består av og hvordan den skapes.

Vi vil også se en spesiell seksjon som forklarer hva spesialtegn er og hvilken rolle spiller kontrollkarakterene i en streng.

Etter den teoretiske forklaringen, vil vi se de flere praktiske eksemplene med kodebiter og bilder der vi lærer deg hvordan du lager strengene og bruker de grunnleggende funksjonene som C -språket gir for deres ledelse.

Strenger på C -språk

En streng er et stykke tekst som består av alfanumeriske tegn, symboler og kontrolltegn. Kompilatoren behandler alt som er innelukket i sitater som en streng og plasserer automatisk en nullkarakter etter den siste karakteren for å indikere slutten.

La oss deretter se på den mest kjente kjeden i programmering:

"Hei Verden"

C -språket lagrer strengene i matriser av elementer av type røye eller usignert røye. Datatypen for elementene må spesifiseres i erklæringen av matrisen som vist på følgende:

Char String_1 [20];
usignert char string_2 [20];

I dette tilfellet har String_1 -arrayen 20 elementer av Type Char, og String_2 -arrayen har 20 elementer av typen usignert røye.

Datatypen til matriseelementene bestemmer karaktersettet som strengen godtar. En char-datatype aksepterer bare ett 7-biters ASCII-tegn. Den gjenværende biten brukes som en tegn- og paritetskontroll, så bare tegnene mellom 0H00 og 0H80 fra ASCII -tabellen kan være representert i denne datatypen.

Karakterene på den usignerte char -typen bruker ikke en skiltbit, så de 8 bitene deres brukes til å representere karakterene mellom 0h00 og 0HFF av den utvidede ASCII -koden.

I tillegg til alfanumeriske tegn og symboler, kan en streng også inneholde kontrolltegnene.

Unnslippe og kontrollkarakterer på C -språket

Kontrolltegn har funksjonen å utføre spesifikke handlinger i strengen som inneholder dem. For eksempel betyr en "\ n" -tegn før en streng begynnelse at det skal skrives til en ny linje.

#inkludere
void main ()
printf ("\ nhello world");

Escape -tegnet på slutten av strengen indikerer at strengen skal skrives og markøren flyttes til neste linje.

#inkludere
void main ()
Printf ("Hello World \ n");

Alle rømningssekvenser består av en alfanumerisk karakter som er gitt en tilbakeslag.

Deretter ser vi en tabell over de mest brukte fluktfigurene på C -språket:

\ n Ny linje
\ r Vognretur
\en Varsel pip
\ t Tabulering
\ V Vertikal tabulering
\ b Backspace
\ f Form feed

I tillegg til disse fluktfigurene, er det sekvenser som indikerer for kompilatoren at den må inneholde visse symboler i strengen. For eksempel, hvis vi vil inkludere et dobbelt sitatkarakter i teksten, vil kompilatoren tolke det som en terminator av strengen og ikke som en annen karakter av den. Av denne grunn må noen symboler gå foran med en tilbakeslag slik at kompilatoren kan sette inn. I det følgende eksemplet ser vi hva disse er:

\ ” Sett inn doble sitater
\ ' Sett inn enkelt sitater
\\ Sett inn tilbakeslag
\? Sett inn spørsmålstegn

:

Hvordan lage en streng på C -språket

En av måtene å erklære en streng på er å lage en karakterutvalg av type røye eller usignert røye av en viss størrelse, som følger:

char str [50];
Str = "Hello World";

På denne måten behandler kompilatoren dataene som er lagret i matrisen som en enkelt streng ved å tilordne et nullkarakter på slutten av den.

Hvordan lage en konstant streng på C -språket

For å lage en konstant streng, må du erklære en karakterutvalg av type røye eller usignert røye uten å spesifisere størrelsen. Tildel deretter strengen til den som vist i følgende:

char str [] = "Hello World";

Kompilatoren setter automatisk en nullkarakter på slutten av strengen for å indikere enden. Med denne typen streng er det ikke mulig å endre innholdet.

Hvordan lage en peker til strengen på C -språket

En annen måte å lagre en streng på er å erklære en peker til matrisen som lagrer den. Denne metoden tildeler dynamisk størrelsen på karaktergruppen. Her er den riktige måten å erklære en strengpeker på:

char *s_ptr;
S_PTR = "Hello World";

Pekermetoden er den mest brukte av C -språkfunksjonene for å referere til en streng i deres inngangs- og utgangsargumenter.

Funksjoner for håndtering av strengene

Ved programmering er det viktig å huske de grunnleggende funksjonene for å håndtere strengene fordi vi bruker dem om og om igjen. Hvis du mestrer dem, vil arbeidet ditt gå mye raskere.

Alle funksjonene for håndtering av strengene er definert i “Strengen.h ”header. For å benytte deg av dem, må du ta med denne filen i koden din som følger:

#inkludere

I det følgende avsnittet vil vi kort vise deg hvordan du bruker de grunnleggende strenghåndteringsfunksjonene på C -språket.

Hvordan vise en streng på C -språket

Den vanligste måten å vise en streng på skjermen på er å bruke printf () eller Puts () -funksjonene, som begge er definert i “STDIO.h ”header. Disse funksjonene godtar en streng eller en peker til en streng som en inngangsargument.

La oss nå se hvordan en streng kan vises på skjermen ved hjelp av printf () -funksjonen:

#inkludere
void main ()
printf ("Hello World 1 \ n");
char str [15] = "\ nhello world 2 \ n";
printf ("%s", str);

Hvis du bruker printf () -funksjonen og passerer en strengpeker som i det andre tilfellet, må du spesifisere i hvilket format den skal vises. Siden det er en streng i dette tilfellet, er dette formatet spesifisert med "%s" som det første inngangsargumentet.

I den følgende figuren kan du se sammenstilling og utførelse av denne koden:

Hvordan kopiere en streng på C -språk

Det er flere måter å kopiere en streng på C -språket. Den mest brukte metoden er StrcPy () -funksjonen som er definert i “Strengen.h ”header. I det følgende eksempel vil vi se på syntaks for denne funksjonen:

Strcpy (S1, S2);

StrcPy () -funksjonen kopierer “S2” -strengen til “S1” -strengen og setter inn et nullkarakter på slutten. "S2" -strengen kan spesifiseres eksplisitt eller implisitt.

Eksempel:

Følgende kode kopierer den eksplisitt spesifiserte “S2” -strengen til “S1” -strengen og viser den i kommandokonsollen:

#inkludere
#inkludere
tomrom ()

char s1 [20] = "";
strcpy (S1, "\ n \ nhello World \ n \ n");
printf ("%s", s1);

Følgende bilde viser sammenstilling og utførelse av denne koden. I dette tilfellet kopierer StrcPy () strengen fra “S2” til “S1” og skriver den deretter ut til skjermen ved hjelp av Printf () -funksjonen:

Hvordan sammenkoble to strenger på C -språket

Funksjonen som C -språket gir for å sammenkoble to strenger er strcat (). La oss se på syntaks for denne funksjonen i følgende:

Strcat (S1, S2);

Denne funksjonen sammenkobler "S2" -strengen til "S1" -strengen. Som alle strengbehandlingsfunksjoner, plasserer strcat () en nullkarakter på slutten av den sammenkoblede strengen. Både “S1” og “S2” kan spesifiseres eksplisitt eller implisitt.

Eksempel:

#inkludere
#inkludere
tomrom ()

char s1 [20] = "\ n \ nhello";
Strcat (S1, "World \ n \ n");
printf ("%s", s1);

Følgende bilde viser sammenstilling og utførelse av denne koden. I dette tilfellet sammenkobler StrCat () "S2" SRING til “S1” -strengen og skriver den deretter ut til skjermen ved hjelp av printf () -funksjonen:

Hvordan sammenligne to strenger på C -språket

Funksjonen som C -språket gir for å sammenligne strengene er STRCMP (). La oss se på syntaks for denne funksjonen i følgende:

int strcmp (S1, S2);

STRCMP () -funksjonen sammenligner “S1” og “S2” -strengene. Hvis de er like, returnerer det et resultat som er lik 0. Hvis de ikke er like, returnerer det et resultat som ikke er lik 0.


Eksempel:

#inkludere
#inkludere
tomrom ()

char s1 [50] = "like";
char s2 [50] = "like";
char s3 [50] = "ikke lik";
// sak 1
if (strcmp (s1, s2) == 0)
printf ("\ n \ ns1 og s2 er like \ n \ n");
ellers
printf ("\ n \ ns1 og s2 er ikke like \ n \ n");
// sak 2
if (strcmp (s1, s3) == 0)
printf ("\ n \ ns1 og s3 er like \ n \ n");
ellers
printf ("\ n \ ns1 og s3 er ikke like \ n \ n");

Vi ser samlingen og utførelsen av denne koden i følgende figur. I tilfelle 1 er “S1” og “S2” de samme, så strcmp () returnerer 0. I tilfelle 2 er “S1” og “S3” ikke like, så programmet kommer inn i "ellers" i "hvis" -uttalelsen.

Hvordan kutte en streng i fragmenter

StrSEP () -funksjonene fragmenter strengen som er pekt på av Stringp i stykker, og starter med en avgrenser som er spesifisert i dets "Delim" inngangsargument. La oss nå se på syntaks for denne funksjonen:

char *strSep (char ** begrenser Stringp, const char *begrenset delim);

Når Strep () møter en avgrenser, erstatter den den med en nullkarakter som markerer slutten på det nye fragmentet og setter pekeren til Stringp til neste posisjon. Denne funksjonen returnerer pekeren til det nye fragmentet på hver samtale, eller en nullpeker hvis den ikke finner flere avgrensere.

Eksempel:

I dette eksemplet fragmenterer vi “I dag er en flott dag for programmering” streng og bruk et rom som en avgrenser slik at strengen er fragmentert ord for ord, som vi sender ut til kommandokonsollen ved hjelp av printf () -funksjonen. Oppfordringen til StrSep () -funksjonen gjentas i en stund -sløyfe til den ikke finner mer avgrenser og returnerer en nullpeker.

#inkludere
#inkludere
tomrom ()

char s_in [50] = "I dag er en flott dag for programmering";
char* in_ptr = s_in;
char del [4] = "";
char* o_ptr;
mens (o_ptr != Null)
O_PTR = strSep (& in_ptr, del);
printf ("%s \ n \ n", o_ptr);

Følgende bilde viser sammenstilling og utførelse av denne koden. Som vi kan se, fragmenter StrSep () strengen Word by Word og printf () -funksjonen skriver ut hvert ord til en ny linje i kommandokonsollen:

Konklusjon

I denne Linux -hint -artikkelen forklarte vi hva en streng består av på C -språket.

Vi lærte hvilke elementer de er laget av, hva slags data de bruker, hvordan de er kodet og hvilke tegn hver type støtter.

Vi forklarte også de forskjellige måtene å erklære matriser eller pekere for å lagre strengene, samt instruksjonene for å tildele dem.

For å hjelpe deg med å få et grep med strenger på dette språket, brukte vi de praktiske eksemplene og kodebitene for å vise deg hva strenger er og hvordan du bruker noen av de grunnleggende strengbehandlingsfunksjonene.