logo

Funkcia Strsep() v jazyku C

Úvod:

Struny sú podstatnou zložkou programovanie , pretože umožňujú komunikovať s používateľov, zobrazovať výsledky a čítať súbory . Sú typom mechanizmu vstupu a výstupu údajov. Od r struny sú neustále v určitej kapacite používané v programoch, ktoré vytvárame, efektívna manipulácia s reťazcami a funkcie, ktoré ich spracúvajú, sú kľúčové.

Tento tutoriál vás naučí, ako rozdeliť texty v závislosti od oddeľovačov pomocou metóda strsep(). .

Prejdeme cez vstup a výstupné argumenty pre strsep() , jeho syntax a teoretické vysvetlenie a povolené typy údajov pre každý z týchto argumentov.

Ďalej sme to, čo sme sa naučili, uplatnili v praxi použitím útržkov kódu a grafiky na fragmentáciu reťazcov pomocou metóda strsep(). , čo je demonštrované na praktických príkladoch.

Syntax funkcie Strsep() v jazyku C:

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

Vysvetlenie funkcie Strsep() v C:

  • A reťazec sa rozbije pomocou funkcia strsep(). , začínajúc vopred určeným oddeľovačom.
  • The reťazec na ktoré poukázal stringp vstup Argument sa rozdelí touto funkciou a časti sa potom spoja, aby vytvorili nové reťazce, ktoré všetky končia znakom null.
  • Každý nový reťazec začína na adresu daný výstupným ukazovateľom a končí tam, kde oddeľovač špecifikované podľa zdieľam a strsep() Keď sa nájde oddeľovač, funkcia ho nahradí znakom null, ktorý označuje koniec nového reťazca.
  • The stringp ukazovateľ sa automaticky nastaví na začiatok fragmentu po objavení oddeľovacieho znaku, keď sa funkcia vráti zo svojho volania. The stringp ukazovateľ je teraz pripravený na získanie ďalšieho fragmentu v nasledujúcom volaní funkcie. Až kým strsep() vyčerpá oddeľovače a vráti nulový ukazovateľ. V dôsledku toho sa tento proces opakuje pri každom hovore.

Je dôležité poznamenať, že táto funkcia neodvolateľne mení vstupný text nahradením oddeľovačov prázdnymi znakmi. The hlavička „string.h“. obsahuje definíciu funkcia strsep(). . Aby sme ho mohli používať spolu s ďalšími funkciami správy reťazcov, musíme ho začleniť do nášho kódu nasledovne:

 #include 

Ako použiť funkciu Strsep() jazyka C na rozdelenie reťazca na niekoľko fragmentov

V tomto príklade fráza 'Začnime programovať' je vytvorený ako reťazec a jeho obsah je rozdelený pomocou funkcia strsep(). . Každá z novovytvorených strún sa potom vyrába na samostatnej linke v príkazový terminál . Reťazec, na ktorý ukazuje stringp vstupný parameter je rozdelený slovo po slove, pretože oddeľovač, ktorý používame vo vstupnom argumente delim, je znak medzery (' ') .

názvy miest USA

Vyhlasujeme, 's_in' reťazec spolu s textom 'Začnime programovať' a ukazovateľ 'in_Ptr' v funkcia main(). . The stringp funkcie strsep(). vstupným argumentom je tento ukazovateľ.

gimp nahradiť farbu

Ako delim vstupný argument pre metóda strsep(). a určený oddeľovací znak, dodatočne deklarujeme 'string del' s vesmírnym charakterom. Ďalej vyhlásime ukazovateľ 'o_Ptr' , ktorý sa používa ako výstupný argument strsep(). . The metóda printf(). použije tento ukazovateľ ako vstupný argument na zobrazenie obnoveného fragmentu na príkazovej konzole.

Potom, po dodaní struny ako prvý argument, 'in_Ptr' ukazovateľ ako druhý parameter a ukazovateľ 'o_Ptr' ako výstupný argument nazývame funkcia strsep(). . Tento hovor sa uskutočňuje vo vnútri a pričom slučka s únikovou podmienkou, že už nie sú žiadne oddeľovače kedy strsep() vráti nulový ukazovateľ.

Kód pre tento príklad je nasledujúci:

 #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() rozdeľuje 's_in' reťazec slovo po slove, pričom zakaždým sa vytvorí nový reťazec, ktorý sa potom zobrazí na novom riadku v príkazovej konzole, ako je uvedené nižšie;

Výkon:

 Let's start programming 

Záver

V tomto článku sme ukázali, ako spracovať reťazce pomocou funkcia strsep(). , jedna z funkcií uvedených v 'string.h' hlavička. Hovorili sme o jeho teoretickom zdôvodnení syntax, technika volania a prevádzka . Okrem toho sme demonštrovali druh údajov, ktoré akceptuje každý vstupný a výstupný argument.