logo

Strsep() funktion i C

Introduktion:

Strängar är en väsentlig del av programmering , eftersom de gör det möjligt att kommunicera med användare, visa resultat och läsa filer . De är en typ av datainmatnings- och utmatningsmekanism. Eftersom strängar ständigt används i viss kapacitet i de program vi skapar, effektiv hantering av strängar och de funktioner som bearbetar dem är avgörande.

Denna handledning kommer att lära dig hur du delar upp texter beroende på avgränsare med hjälp av strsep() metod .

Vi kommer att gå över inmatning och utgångsargument för strsep() , dess syntax och teoretisk förklaring , och de tillåtna datatyperna för vart och ett av dessa argument.

Vi omsätter sedan det vi har lärt oss i praktiken genom att använda kodavsnitt och grafik för att fragmentera strängar med hjälp av strsep() metod , vilket visas i de praktiska exemplen.

Strsep() Funktionssyntax i C-språket:

 char *strsep(char **restrict stringp, const char *restrict delim); 

En förklaring av Strsep()-funktionen i C:

  • A sträng bryts isär med hjälp av strsep() funktion , som börjar med en förutbestämd avgränsare.
  • De sträng pekade på av stringp-ingång argumentet delas upp av denna funktion, och bitarna kombineras sedan för att bilda nya strängar som alla slutar med noll-tecknet.
  • Varje ny sträng börjar vid adress ges av utgångspekaren och avslutar där avgränsare specificeras av jag delar och strsep() När en avgränsare hittas ersätter funktionen den med ett nolltecken för att indikera slutet på den nya strängen.
  • De stringp-pekare ställs automatiskt in i början av fragmentet efter att avgränsningstecknet har upptäckts när funktionen återkommer från sitt anrop. De stringp-pekare är nu förberedd för att hämta nästa fragment i följande funktionsanrop. Fram tills strsep() tar slut på avgränsare och returnerar en nollpekare. Som ett resultat upprepas denna process för varje samtal.

Det är viktigt att notera att den här funktionen ändrar den inmatade texten oåterkalleligt genom att ersätta avgränsare med nolltecken. De rubrik 'string.h'. innehåller definitionen av strsep() funktion . Vi måste infoga den i vår kod enligt följande för att kunna använda den och de andra stränghanteringsfunktionerna:

 #include 

Hur man använder C-språkets Strsep()-funktion för att dela upp en sträng i flera fragment

I det här exemplet, frasen 'Låt oss börja programmera' skapas som en sträng och dess innehåll bryts isär med hjälp av strsep() funktion . Var och en av de nyskapade strängarna produceras sedan på en separat rad i kommandoterminal . Strängen som pekas på av strängp indataparametern bryts upp ord för ord eftersom avgränsaren vi använder i deliminmatningsargumentet är blanksteg (' ') .

c++ gui

Vi förklarar 'synd' sträng tillsammans med texten 'Låt oss börja programmera' och den 'in_Ptr'-pekare i huvudfunktion . De strsep()-funktionens stringp input argument är denna pekare.

Som den delim input argument för strsep() metod och det angivna avgränsningstecknet, deklarerar vi dessutom 'sträng del' med mellanslagstecken. Vi förklarar nästa 'o_Ptr'-pekare , som används som strsep()s utdataargument . De printf() metod kommer att använda den här pekaren som ett inmatningsargument för att visa det återställda fragmentet på kommandokonsolen.

offentlig vs privat java

Efter det, efter att ha levererat av strängen som det första argumentet 'in_Ptr' pekaren som den andra parametern, och 'o_Ptr'-pekare som output-argument kallar vi strsep() funktion . Detta samtal görs inuti en medan loop med rymningsvillkor att det inte finns fler avgränsare när strsep() returnerar en nollpekare.

Koden för detta exempel är följande:

 #include #include int main() { char s_in[50] = 'Let's start programming '; char del[20] = ' '; char* in_Ptr = s_in; char* o_Ptr; while ((o_Ptr = strsep(&in_Ptr, del)) != NULL) { printf('%s
', o_Ptr); } return 0; } 

Strsep() delar upp 'synd' sträng ord för ord, producerar en ny sträng varje gång, som sedan visas på en ny rad i kommandokonsolen, som visas nedan;

Produktion:

 Let's start programming 

Slutsats

I den här artikeln demonstrerade vi hur man bearbetar strängar med hjälp av strsep() funktion , en av funktionerna som anges i 'string.h' rubrik. Vi pratade om den teoretiska motiveringen för dess syntax, anropsteknik , och drift . Dessutom visade vi vilken typ av data som varje input och output argument accepterar.