Introduksjon:
Strenger er en vesentlig del av programmering , fordi de gjør det mulig å kommunisere med brukere, vis resultater og les filer . De er en type datainntastings- og utdatamekanisme. Siden strenger blir stadig brukt i noen kapasitet i programmene vi lager, effektiv håndtering av strenger og funksjonene som behandler dem er avgjørende.
Denne opplæringen vil lære deg hvordan du deler tekster avhengig av skilletegn ved å bruke strsep()-metoden .
Vi vil gå over input og utdataargumenter til strsep() , det er syntaks og teoretisk forklaring , og de tillatte datatypene for hvert av disse argumentene.
Vi setter deretter det vi har lært i praksis ved å bruke kodebiter og grafikk for å fragmentere strenger ved å bruke strsep()-metoden , som er demonstrert i de praktiske eksemplene.
Strsep() funksjonssyntaks i C-språket:
char *strsep(char **restrict stringp, const char *restrict delim);
En forklaring av Strsep()-funksjonen i C:
- EN streng er brutt fra hverandre ved hjelp av strsep() funksjon , som begynner med en forhåndsbestemt skilletegn.
- De streng pekt på av stringp-inngang argumentet deles opp av denne funksjonen, og brikkene blir deretter kombinert for å danne nye strenger som alle ender med null-tegnet.
- Hver ny streng begynner på adresse gitt av utdatapekeren og avslutter der skilletegn spesifisert av jeg deler og strsep() Når et skilletegn blir funnet, erstatter funksjonen det med et nulltegn for å indikere slutten på den nye strengen.
- De stringp-peker settes automatisk ved starten av fragmentet etter at skilletegnet er oppdaget når funksjonen kommer tilbake fra kallet. De stringp-peker er nå forberedt på å hente neste fragment i følgende funksjonskall. Før strsep() går tom for skilletegn og returnerer en null-peker. Som et resultat gjentas denne prosessen for hver samtale.
Det er viktig å merke seg at denne funksjonen endrer inndatateksten ugjenkallelig ved å erstatte null-tegn for skilletegn. De 'string.h'-overskrift inneholder definisjonen av strsep() funksjon . Vi må inkorporere den i koden vår som følger for å bruke den og de andre strengadministrasjonsfunksjonene:
#include
Hvordan bruke C-språkets Strsep()-funksjon for å dele en streng i flere fragmenter
I dette eksemplet er uttrykket 'La oss begynne å programmere' opprettes som en streng, og innholdet brytes fra hverandre ved hjelp av strsep() funksjon . Hver av de nyopprettede strengene produseres deretter på en egen linje i kommandoterminal . Strengen peker på av stringp input-parameteren er brutt opp ord for ord siden skilletegnet vi bruker i delim input-argumentet er mellomrom (' ') .
10 1 millioner
Vi erklærer 'synd' streng sammen med teksten 'La oss begynne å programmere' og 'in_Ptr'-peker i hovedfunksjon . De strsep() funksjonens stringp input-argument er denne pekeren.
Som delim input argument for strsep()-metoden og det angitte skilletegnet, erklærer vi i tillegg 'string del' med mellomromstegn. Vi erklærer neste 'o_Ptr'-peker , som brukes som strsep() sitt utgangsargument . De printf() metode vil bruke denne pekeren som et input-argument for å vise det gjenopprettede fragmentet på kommandokonsollen.
Etter det, etter å ha levert av strengen som det første argumentet 'in_Ptr' pekeren som den andre parameteren, og 'o_Ptr'-peker som output-argument kaller vi strsep() funksjon . Denne samtalen gjøres inne i en mens loop med rømningsbetingelsen at det ikke er flere avgrensninger når strsep() returnerer en null-peker.
Koden for dette eksemplet er som følger:
#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() deler opp 'synd' streng ord for ord, og produserer en ny streng hver gang, som deretter vises på en ny linje i kommandokonsollen, som vist nedenfor;
Produksjon:
greibach normal form
Let's start programming
Konklusjon
I denne artikkelen demonstrerte vi hvordan du behandler strenger ved å bruke strsep() funksjon , en av funksjonene spesifisert i 'string.h' Overskrift. Vi snakket om den teoretiske begrunnelsen for det syntaks, kalleteknikk , og operasjon . I tillegg demonstrerte vi hva slags data som hvert input og output argument aksepterer.