Invoering:
Snaren zijn een essentieel onderdeel van programmeren , omdat ze het mogelijk maken om mee te communiceren gebruikers, resultaten weergeven en bestanden lezen . Ze zijn een soort gegevensinvoer- en uitvoermechanisme. Sinds snaren worden voortdurend in een bepaalde hoedanigheid gebruikt in de programma's die we maken, een efficiënte omgang met tekenreeksen en de functies die deze verwerken zijn cruciaal.
In deze tutorial leert u hoe u teksten kunt verdelen op basis van scheidingstekens met behulp van de strsep() methode .
We gaan over de invoer En uitvoerargumenten voor strsep() , zijn syntaxis En theoretische uitleg en de toegestane gegevenstypen voor elk van deze argumenten.
Vervolgens brengen we wat we hebben geleerd in de praktijk door codefragmenten en afbeeldingen te gebruiken om tekenreeksen te fragmenteren met behulp van de strsep() methode , wat wordt gedemonstreerd in de praktijkvoorbeelden.
Strsep() Functiesyntaxis in de C-taal:
char *strsep(char **restrict stringp, const char *restrict delim);
Een uitleg van de functie Strsep() in C:
- A snaar wordt uit elkaar gehaald met behulp van de strsep()-functie , beginnend met een vooraf bepaald scheidingsteken.
- De snaar gewezen door de stringp-invoer argument wordt door deze functie opgesplitst en de stukken worden vervolgens gecombineerd om nieuwe strings te vormen die allemaal eindigen op het null-teken.
- Elke nieuwe snaar begint bij de adres gegeven door de uitvoeraanwijzer en eindigt waar de scheidingsteken gespecificeerd door ik deel En strsep() Wanneer een scheidingsteken wordt gevonden, vervangt de functie dit door een nulteken om het einde van de nieuwe tekenreeks aan te geven.
- De stringp-aanwijzer wordt automatisch aan het begin van het fragment geplaatst nadat het scheidingsteken is ontdekt wanneer de functie terugkeert van zijn aanroep. De stringp-aanwijzer is nu voorbereid om het volgende fragment in de volgende functieaanroep te verkrijgen. Tot strsep() Er zijn geen scheidingstekens meer en er wordt een null-aanwijzer geretourneerd. Als gevolg hiervan wordt dit proces voor elke oproep herhaald.
Het is belangrijk op te merken dat deze functie de invoertekst onherroepelijk verandert door de scheidingstekens te vervangen door nultekens. De 'string.h'-kop bevat de definitie van de strsep()-functie . We moeten het als volgt in onze code opnemen om het en de andere stringbeheerfuncties te kunnen gebruiken:
#include
Hoe u de Strsep()-functie van de C-taal kunt gebruiken om een tekenreeks in verschillende fragmenten te splitsen
In dit voorbeeld is de zin 'Laten we beginnen met programmeren' wordt gemaakt als een tekenreeks en de inhoud ervan wordt opgesplitst met behulp van de strsep()-functie . Elk van de nieuw gemaakte snaren wordt vervolgens op een afzonderlijke regel in de commandoterminal . De string waarnaar wordt verwezen door de string invoerparameter wordt woord voor woord opgesplitst, omdat het scheidingsteken dat we gebruiken in het scheidingsteken-invoerargument de is spatieteken (' ') .
rekenkundige logische eenheid
Wij verklaren de 'zonde' tekenreeks samen met de tekst 'Laten we beginnen met programmeren' en de 'in_Ptr'-aanwijzer in de hoofdfunctie . De stringp van de functie strsep(). invoerargument is deze aanwijzer.
Zoals de invoerargument scheiden voor de strsep() methode en het aangewezen scheidingsteken, verklaren we bovendien de 'string del' met het spatiekarakter. Vervolgens verklaren wij de 'o_Ptr'-aanwijzer , die wordt gebruikt als het uitvoerargument van strsep(). . De printf() methode zal deze aanwijzer gebruiken als invoerargument om het herstelde fragment op de opdrachtconsole weer te geven.
Daarna, na het leveren van de van de snaar als eerste argument, de 'in_Ptr' pointer als de tweede parameter, en de 'o_Ptr'-aanwijzer als uitvoerargument noemen we de strsep()-functie . Deze oproep wordt gedaan in een herhalingslus met de ontsnappingsvoorwaarde dat er geen scheidingstekens meer zijn wanneer strsep() retourneert een nulwijzer.
De code voor dit voorbeeld is als volgt:
math.random java
#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; }
Strep() verdeelt de 'zonde' string woord voor woord, waarbij elke keer een nieuwe string wordt geproduceerd, die vervolgens op een nieuwe regel in de opdrachtconsole wordt weergegeven, zoals hieronder weergegeven;
Uitgang:
Let's start programming
Conclusie
In dit artikel hebben we gedemonstreerd hoe u tekenreeksen kunt verwerken met behulp van de strsep()-functie , een van de functies die zijn opgegeven in het 'string.h' koptekst. We spraken over de theoretische rechtvaardiging ervoor syntaxis, aanroeptechniek , En operatie . Daarnaast hebben we aangetoond welk soort gegevens elk invoer- en uitvoerargument accepteert.