Ú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.