Funzione strtok in c

Funzione strtok in c

“La funzione strtok () è una funzione di libreria C predefinita che ci consente di rompere le stringhe in più stringhe o zero, il punto più importante mentre la suddetta stringhe da tenere a mente è che non può essere vuoto o nullo.

Vengono passati due parametri alla funzione strtok () responsabile della tokenizzazione della stringa; Il primo parametro è l'On che contiene la stringa che deve essere tokenizzata, mentre il secondo è il delimitatore che contiene la parola chiave o il carattere che definirà l'inizio e la fine della stringa in cui viene tokenizzata. La funzione strtok () ignora la parte delimitante e visualizza semplicemente la stringa che è proprio accanto al delimitatore.

Ogni volta che viene chiamata la funzione strtok (), viene restituito il puntatore al token successivo, che è indicato da una stringa di terminazione nulla. Quando spiega la fine della stringa in cui non viene scoperto alcun token, restituirà null."

Sintassi: m

$ STRTOK (String, token);

Nella sintassi sopra menzionata, vengono passati due argomenti: il primo parametro, "String", è quello che è la stringa principale che deve essere analizzata, mentre il secondo parametro, "token", è il delimitatore che definirà la rottura punto della stringa.

Supponiamo che quando la funzione Strtok () viene chiamata per la prima volta, inizierà a cercare il delimitatore del personaggio passo dopo passo. Come sappiamo, le stringhe sono archiviate sotto forma di un array che alloca gli indirizzi di memoria consecutivi per archiviare il puntatore uno per uno che controllerà il delimitatore. Nel caso in cui il delimitatore venga trovato, spezzerà la stringa in segmenti; Se non viene trovato alcun delimitatore, cercherà il Terminator o il valore null, che indicherà il punto finale della stringa, restituirà il valore null.

Una volta divisa la stringa, non può essere convertita nel suo stato originale. Per evitare questo, dobbiamo prima copiare la stringa nel buffer, quindi passeremo l'indirizzo del buffer su Strtok () in modo che attraverso questo possiamo preservare la nostra stringa originale.

Esempio 1

In questo esempio, implementeremo la funzione strtok () per rompere la singola stringa in più segmenti. Passando al nostro primo passo in cui dichiariamo i file di intestazione "Stringa.H "e" stdio.H". Dato che lavoreremo con le stringhe, quindi è necessario includere un file di intestazione della stringa a meno che non siamo in grado di implementare le stringhe. Quindi passando alla nostra funzione principale, dove abbiamo dichiarato array di 3 caratteri che sono String [], Del [] e la variabile del personaggio denominata il mio token.

String [] è l'array di caratteri che è responsabile di tenere una stringa di caratteri che verranno analizzati per romperlo in parti. Il Dell [] è l'array di caratteri costanti che funziona come delimitatore, oppure possiamo dire che è il personaggio che definirà il puntatore, a quel punto dovrebbe rompere la stringa; Nel nostro caso, il delimitatore è "virgola". Laddove la terza variabile, MyToken, è responsabile della memorizzazione del valore di restituzione della funzione strtok ().

#includere
#includere
int main ()
Char String [] = "My New Project, My Strtok Project";
const char del [] = ",";
char *mytoken;
myToken = strtOk (string, del);
mentre (myToken != Null)
printf (" %s \ n", mytoken);
myToken = Strtok (null, del);

restituzione (0);

Dopo aver dichiarato con successo le nostre variabili, assegneremo le variabili myToken la funzione strtok () in cui passeremo le variabili come parametro che abbiamo già dichiarato sopra, l'array di stringa e la variabile delimita. Quindi abbiamo creato un ciclo di tempo in cui abbiamo superato la nostra variabile MyToken, che tiene il valore di restituzione della funzione strtok (). Mentre loop controllerà la condizione che abbiamo applicato; Se il MyToken non è nullo, si sposterà nella parte interna del ciclo while; Altrimenti, non visualizzerà alcuna esecuzione.

Supponiamo che la nostra condizione sia vera; Quindi, stamperà la stringa che viene divisa in segmenti. Poi di nuovo, assegnando MyToken una funzione strtok () in cui ora passeremo l'elemento null e il delimitatore. Null viene utilizzato per istruire la funzione strtok () di fermare l'analisi e restituire null /0 ogni volta che viene terminata la stringa o viene scoperta una variabile null.

Fino a quando l'intera stringa non viene recuperata per i delimitatori e suddivisa in stringhe secondo il delimitatore definito, il ciclo while non smetterà di funzionare. Stamperà la stringa proprio accanto a ogni delimitatore e termina ogni volta che viene scoperto il delimitatore. Nel nostro caso, abbiamo usato solo un delimitatore nella nostra frase, quindi si rompe in due segmenti, come mostrato nella figura seguente.

Esempio 2

In questo esempio, divideremo gli array di stringhe in più segmenti usando gli spazi come delimitatore. Nell'esempio sopra, abbiamo appena diviso due stringhe in segmenti, ma in questo useremo gli spazi come delimitatore e spezzeremo una stringa in più segmenti.

#includere
#includere
int main ()

char string [] = "My Strtok funzione in C Language";
char *strtoken;
strtoken = strtok (string, "");
mentre (strtken != Null)

printf ("%s \ n", strtken);
strtoken = strtok (null, "");

restituzione 0;

Come mostrato nel codice sopra, abbiamo appena incluso il nostro file di intestazione; Dopo aver incluso il file di intestazione, ci sposteremo nella nostra funzione principale, dove dichiareremo due variabili di carattere in cui si sarà responsabile della tenuta della stringa e del secondo che sarà responsabile della funzione di restituzione di Strtok (). In questo caso, abbiamo la variabile "String []" che memorizza la stringa che deve essere divisa, mentre il "strtoken" viene utilizzato per archiviare il valore di restituzione della funzione strtok ().

Quindi chiameremo la funzione strtok (), che passiamo ai parametri, quindi, una è la stringa che deve essere analizzata, e la seconda è il delimitatore stesso; In questo esempio, il delimitatore è spazio. Come mostrato nella figura seguente, ogni volta che lo spazio viene scoperto, dividerà la stringa in segmenti. Il delimitatore non verrà stampato la prima lettera fino alla fine in cui verrà trovato il prossimo delimitatore; Stamperà l'intera stringa tra i delimitatori.

Conclusione

In questa guida, abbiamo studiato brevemente la funzione Strtok (), in cui abbiamo descritto lo scopo della funzione Strtok () nonché la sua implementazione e come divideremo una singola stringa in più segmenti usando una variabile a singolo carattere che è la delimitatore. La funzione strtok () è facile da usare e interpretare stringhe. Lo scopo del nostro articolo è semplificare l'apprendimento della funzione strtok () per definizione e per più esempi.