Come dividere le stringhe con Strtok nella programmazione C?

Come dividere le stringhe con Strtok nella programmazione C?
Stringhe di divisione è importante per vari motivi come l'elaborazione del testo, l'analisi dei dati o l'analisi e il linguaggio di programmazione C offre numerosi modi per gestire questo compito. Tuttavia, la funzione C più popolare che consente stringa di divisione in più token da un delimitatore specificato è strtok (). Essendo una funzione di libreria, è disponibile nella libreria C standard che supporta le operazioni di stringa.

Come funziona la funzione strtok ()?

Per dividere una stringa usando strtok (), Per prima cosa hai bisogno di capire come funziona. IL strtok () legge il carattere stringa di input per carattere fino a quando non si imbatte in un delimitatore. Una volta trovato un delimitatore, strtok () lo sostituisce con un carattere null '\ 0', dividendo efficacemente la stringa originale in due parti. Un puntatore al primo carattere della stringa viene quindi restituito dalla funzione. IL strtok () La sintassi della funzione è:

strtok (char* str, const char* delim);

IL strtok () La funzione prende due argomenti: un puntatore al primo token nel set di token e una stringa che contiene i caratteri delimitanti. Restituisce un puntatore al token successivo, che inizia immediatamente dopo il delimitatore che ha diviso l'ultimo token. Restituisce null se non ci sono più token.

Come dividere le stringhe con strtok () nella programmazione C?

Ecco un esempio di come usare strtok () per dividere una stringa:

#includere
#includere
int main ()
char input [] = "linux, suggerimento";
char *token;
token = strtok (input, ",");
mentre (token != Null)
printf ("%s \ n", token);
token = strtok (null, ",");

restituzione 0;

Nell'esempio sopra, dichiariamo per la prima volta un puntatore a un carattere. Quindi usiamo strtok () Per dividere la stringa di input in token. La prima chiamata di strtok () Prende due argomenti: la stringa di input e la stringa delimitatore "",. Il primo token, "Linux", è quello che strtok () ritorna come puntatore a. Quindi usiamo un ciclo while per iterare attraverso la stringa di input, usando strtok () con un puntatore nullo per continuare a dividere i token rimanenti. La stringa delimitante viene nuovamente passata come argomento strtok () Per indicare i caratteri delimitanti.

Produzione

Limitazioni della funzione strtok ()

1: modifica la stringa originale

IL strtok () La funzione non restituisce una copia della stringa; Invece, modifica la stringa originale. Pertanto, se è necessario disporre di una versione non modificata della stringa dopo averla divisa, è necessario effettuare una copia della stringa originale prima di invocare strtok ().

2: asincrono

Una limitazione significativa di strtok () è che può essere usato solo su una singola stringa alla volta. In altre parole, non puoi usarlo per tokenizzare più stringhe contemporaneamente.

3: capacità limitata

Un'altra potenziale limitazione è quella strtok () ha una capacità limitata di gestire delimitatori ripetuti. Ad esempio, se la stringa ha spazi consecutivi tra le parole, strtok () lo tratta come un singolo delimitatore. Per gestire tali casi, dovrai utilizzare un approccio diverso.

Conclusione

IL strtok () La funzione è una funzione molto utile per la divisione delle stringhe nella programmazione C. Prende una stringa di input e una stringa delimitatore e restituisce un puntatore al primo token trovato nella stringa di input. Strtok () è distruttivo, quindi se è necessario preservare l'integrità della stringa originale, si consiglia invece di crearne un duplicato. Ora che sai come farlo, puoi tagliare qualsiasi stringa in pezzi più piccoli per l'elaborazione.