logo

Funkce Strsep() v C

Úvod:

Struny jsou nezbytnou součástí programování , protože umožňují komunikovat s uživatelům, zobrazovat výsledky a číst soubory . Jsou typem mechanismu vstupu a výstupu dat. Od té doby struny jsou neustále v určité kapacitě využívány v programech, které vytváříme, efektivní manipulace s řetězci a funkce, které je zpracovávají, jsou klíčové.

Tento tutoriál vás naučí, jak rozdělit texty v závislosti na oddělovačích pomocí metoda strsep(). .

Projdeme si vstup a výstupní argumenty pro strsep() , své syntax a teoretické vysvětlení a povolené datové typy pro každý z těchto argumentů.

Dále jsme to, co jsme se naučili, uvedli do praxe pomocí fragmentů kódu a grafiky k fragmentaci řetězců pomocí metoda strsep(). , což je ukázáno na praktických příkladech.

Syntaxe funkce Strsep() v jazyce C:

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

Vysvětlení funkce Strsep() v C:

  • A tětiva se rozpadá pomocí funkce strsep(). , počínaje předem určeným oddělovačem.
  • The tětiva na které poukázal stringp vstup argument je touto funkcí rozdělen a části jsou poté spojeny do nových řetězců, které všechny končí znakem null.
  • Každý nový řetězec začíná na adresa daný výstupním ukazatelem a končí tam, kde oddělovač specifikováno podle sdílím a strsep() Když je nalezen oddělovač, funkce jej nahradí znakem null, který označuje konec nového řetězce.
  • The stringp ukazatel se automaticky nastaví na začátek fragmentu poté, co je objeven oddělovací znak, když se funkce vrátí ze svého volání. The stringp ukazatel je nyní připraven získat další fragment v následujícím volání funkce. Až do strsep() vyčerpá oddělovače a vrátí nulový ukazatel. V důsledku toho se tento proces opakuje pro každé volání.

Je důležité poznamenat, že tato funkce nenávratně změní vstupní text nahrazením oddělovačů prázdnými znaky. The záhlaví 'string.h' obsahuje definici funkce strsep(). . Abychom jej mohli používat a další funkce pro správu řetězců, musíme jej začlenit do našeho kódu následovně:

 #include 

Jak použít funkci Strsep() jazyka C k rozdělení řetězce na několik fragmentů

V tomto příkladu fráze 'Začněme programovat' je vytvořen jako řetězec a jeho obsah je rozdělen pomocí funkce strsep(). . Každá z nově vytvořených strun se pak vyrábí na samostatné lince v příkazový terminál . Řetězec, na který ukazuje stringp vstupní parametr je rozdělen slovo po slovu, protože oddělovač, který používáme ve vstupním argumentu delim, je znak mezery (' ') .

bellfordův algoritmus

Prohlašujeme, 'hřích' řetězec spolu s textem 'Začněme programovat' a ukazatel 'in_Ptr' v hlavní funkce . The stringp funkce strsep(). vstupní argument je tento ukazatel.

v řetězci v jazyce Java

Jako delim vstupní argument pro metoda strsep(). a určený oddělovací znak dodatečně deklarujeme 'string del' s vesmírným charakterem. Dále prohlásíme ukazatel 'o_Ptr' , který se používá jako výstupní argument strsep(). . The metoda printf(). použije tento ukazatel jako vstupní argument k zobrazení obnoveného fragmentu na příkazové konzoli.

Poté, po dodání struny jako první argument, 'in_Ptr' ukazatel jako druhý parametr a ukazatel 'o_Ptr' jako výstupní argument nazýváme funkce strsep(). . Tento hovor se provádí uvnitř a zatímco smyčka s únikovou podmínkou, že již nejsou žádné oddělovače, když strsep() vrací nulový ukazatel.

Kód pro tento příklad je následující:

 #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() rozděluje 'hřích' řetězec slovo po slovu, pokaždé vytvoří nový řetězec, který se pak zobrazí na novém řádku v příkazové konzoli, jak je ukázáno níže;

Výstup:

 Let's start programming 

Závěr

V tomto článku jsme si ukázali, jak zpracovat řetězce pomocí funkce strsep(). , jedna z funkcí uvedených v 'string.h' záhlaví. Mluvili jsme o jeho teoretickém zdůvodnění syntaxe, technika volání , a úkon . Navíc jsme demonstrovali druh dat, který přijímá každý vstupní a výstupní argument.