logo

Funcția Strsep() în C

Introducere:

Siruri de caractere sunt o componentă esenţială a programare , pentru că fac posibilă comunicarea cu utilizatorii, afișați rezultatele și citiți fișierele . Sunt un tip de mecanism de introducere și ieșire a datelor. De cand siruri de caractere sunt utilizate constant într-o anumită calitate în programele pe care le creăm, manipularea eficientă a șirurilor de caractere și funcțiile care le procesează sunt cruciale.

Acest tutorial vă va învăța cum să împărțiți textele în funcție de delimitatorii folosind metoda strsep(). .

Vom trece peste intrare și argumente de ieșire pentru strsep() , este sintaxă și explicatie teoretica , și tipurile de date permise pentru fiecare dintre aceste argumente.

Apoi punem în practică ceea ce am învățat utilizând fragmente de cod și grafice pentru a fragmenta șiruri folosind metoda strsep(). , ceea ce este demonstrat în exemplele practice.

Sintaxa funcției Strsep() în limbajul C:

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

O explicație a funcției Strsep() în C:

  • A şir este rupt folosind funcția strsep(). , începând cu un delimitator predeterminat.
  • The şir indicat de către intrare stringp argumentul este împărțit de această funcție, iar piesele sunt apoi combinate pentru a forma șiruri noi care se termină toate cu caracterul nul.
  • Fiecare șir nou începe la abordare dat de pointerul de ieșire și se termină acolo unde delimitator specificat de Împărtășesc și strsep() Când se găsește un delimitator, funcția îl înlocuiește cu un caracter nul pentru a indica sfârșitul noului șir.
  • The indicatorul stringp este setat automat la începutul fragmentului după ce caracterul delimitator este descoperit când funcția revine din apelul său. The indicatorul stringp este acum pregătit să obțină următorul fragment în următorul apel de funcție. Pana cand strsep() epuizează delimitatorii și returnează un pointer nul. Ca urmare, acest proces se repetă pentru fiecare apel.

Este semnificativ de remarcat faptul că această funcție modifică irevocabil textul introdus prin înlocuirea delimitatorilor cu caractere nule. The antet „string.h”. conţine definiţia funcția strsep(). . Trebuie să-l încorporăm în codul nostru după cum urmează, pentru a-l folosi și a altor funcții de gestionare a șirurilor:

 #include 

Cum să utilizați funcția Strsep() a limbajului C pentru a împărți un șir în mai multe fragmente

În acest exemplu, expresia „Să începem programarea” este creat ca un șir, iar conținutul său este rupt folosind funcția strsep(). . Fiecare dintre șirurile nou create este apoi produs pe o linie separată în terminal de comandă . Snurul indicat de stringp parametrul de intrare este împărțit cuvânt cu cuvânt, deoarece delimitatorul pe care îl folosim în argumentul de intrare delim este caracter de spațiu (' ') .

numără distinct

Declarăm că 'păcat' șir împreună cu textul „Să începem programarea” si indicatorul „în_Ptr”. în functie principala . The stringp al funcției strsep(). argumentul de intrare este acest indicator.

Dupa cum argument de intrare delim pentru metoda strsep(). și caracterul delimitator desemnat, declarăm în plus „string del” cu caracterul spatiu. În continuare declarăm indicatorul „o_Ptr”. , care este folosit ca Argumentul de ieșire al lui strsep(). . The metoda printf(). va folosi acest indicator ca argument de intrare pentru a afișa fragmentul recuperat pe consola de comandă.

După aceea, după furnizarea de sfoară ca prim argument, cel 'in_Ptr' pointerul ca al doilea parametru și indicatorul „o_Ptr”. ca argument de ieșire, numim funcția strsep(). . Acest apel este efectuat în interiorul unui buclă while cu condiţia de evadare să nu mai existe delimitatori când strsep() returnează un indicator nul.

Codul pentru acest exemplu este următorul:

 #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() împarte 'păcat' șir cuvânt cu cuvânt, producând un șir nou de fiecare dată, care este apoi afișat pe o nouă linie în consola de comandă, așa cum se arată mai jos;

Ieșire:

mycricketlive
 Let's start programming 

Concluzie

În acest articol, am demonstrat cum să procesăm șirurile folosind funcția strsep(). , una dintre funcțiile specificate în „string.h” antet. Am vorbit despre justificarea teoretică a acesteia sintaxă, tehnică de apelare , și Operațiune . În plus, am demonstrat tipul de date pe care le acceptă fiecare argument de intrare și de ieșire.