Hvordan dele strenger med Strtok i C -programmering?

Hvordan dele strenger med Strtok i C -programmering?
Delende strenger er viktig av forskjellige grunner som tekstbehandling, dataanalyse eller analysering, og C -programmeringsspråket tilbyr mange måter å håndtere denne oppgaven. Imidlertid den mest populære C -funksjonen som tillater Splitting streng inn i flere symboler med en spesifisert avgrenser er Strtok (). Å være en bibliotekfunksjon, er den tilgjengelig i standard C -biblioteket som støtter strengoperasjoner.

Hvordan fungerer strtok () -funksjonen?

Å dele en streng ved hjelp av Strtok (), Du må først forstå hvordan det fungerer. De Strtok () leser inngangsstrengtegn etter tegn til det kommer over en avgrensning. Når en avgrenser er funnet, Strtok () Erstatter det med en nullkarakter '\ 0', og deler effektivt den opprinnelige strengen i to deler. En peker til strengens første tegn blir deretter returnert av funksjonen. De Strtok () Funksjonens syntaks er:

Strtok (char* str, const char* delim);

De Strtok () Funksjon tar to argumenter- en peker til det første symbolet i settet med symboler og en streng som inneholder avgrensningskarakterene. Den returnerer en peker til neste token, som starter umiddelbart etter avgrenseren som delte det siste tokenet. Det returnerer null hvis det ikke er flere symboler.

Hvordan dele strenger med strtok () i C -programmering?

Her er et eksempel på hvordan du bruker Strtok () å dele en streng:

#inkludere
#inkludere
int main ()
char input [] = "Linux, hint";
char *token;
token = strTok (input, ",");
mens (token != Null)
printf ("%s \ n", token);
token = strTok (null, ",");

retur 0;

I eksemplet ovenfor erklærer vi først en peker til en røye. Vi bruker da Strtok () å dele inngangsstrengen i symboler. Den første samtalen av Strtok () Tar to argumenter: inngangsstrengen og avgrensningsstrengen ",". Det første tokenet, "Linux," er den som Strtok () kommer tilbake som en peker til. Vi bruker en stundsløyfe for å iterere gjennom inngangsstrengen ved hjelp av Strtok () med en nullpeker for å fortsette å dele opp de gjenværende symbolene. Avgrensningsstrengen blir igjen gitt som et argument til Strtok () For å indikere avgrensekarakterene.

Produksjon

Begrensninger av strtok () -funksjon

1: Endrer den originale strengen

De Strtok () Funksjon returnerer ikke en kopi av strengen; I stedet endrer den den originale strengen. Derfor, hvis du trenger å ha en umodifisert versjon av strengen etter å ha delt den, bør du lage en kopi av den originale strengen før du påkaller Strtok ().

2: asynkron

En betydelig begrensning av Strtok () er at den bare kan brukes på en enkelt streng om gangen. Med andre ord, du kan ikke bruke den til å tokenisere flere strenger samtidig.

3: Begrenset kapasitet

En annen potensiell begrensning er at Strtok () har en begrenset kapasitet til å håndtere gjentatte avgrensere. For eksempel, hvis strengen din har påfølgende mellomrom mellom ord, Strtok () Behandler det som en enkelt avgrenser. For å håndtere slike tilfeller, må du bruke en annen tilnærming.

Konklusjon

De Strtok () Funksjon er en veldig nyttig funksjon for splittingstrenger i C -programmering. Den tar en inngangsstreng og en avgrensningsstreng og returnerer en peker til det første tokenet som finnes i inngangsstrengen. Strtok () er ødeleggende, så hvis du trenger å bevare integriteten til den opprinnelige strengen, anbefales det å lage en duplikat av den i stedet. Nå som du vet hvordan du gjør det, kan du kutte hvilken som helst streng i mindre biter for behandling.