Come funziona la funzione strtok()?
Per dividere una stringa usando strtok() , devi prima capire come funziona. IL strtok() legge la stringa di input carattere per carattere finché non incontra un delimitatore. Una volta trovato un delimitatore, strtok() lo sostituisce con un carattere nullo '\0', dividendo di fatto 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 , cost char * condivido ) ;IL strtok() La funzione accetta due argomenti: un puntatore al primo token nell'insieme di token e una stringa che contiene i caratteri delimitatori. Restituisce un puntatore al token successivo, che inizia immediatamente dopo il delimitatore che ha suddiviso 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 utilizzare strtok() per dividere una stringa:
#include
#include
int principale ( ) {
char ingresso [ ] = 'Linux, suggerimento' ;
char * gettone ;
gettone = strtok ( ingresso , ',' ) ;
Mentre ( gettone != NULLO ) {
printf ( '%S \N ' , gettone ) ;
gettone = strtok ( NULLO , ',' ) ;
}
ritorno 0 ;
}
Nell'esempio precedente, per prima cosa dichiariamo un puntatore a un carattere. Usiamo quindi strtok() per suddividere la stringa di input in token. La prima chiamata di strtok() accetta due argomenti: la stringa di input e la stringa delimitatrice “,”. Il primo token, 'Linux', è quello che strtok() ritorna come un puntatore a . Quindi usiamo un ciclo while per scorrere la stringa di input, usando strtok() con un puntatore NULL per continuare a suddividere i token rimanenti. La stringa delimitatrice viene nuovamente passata come argomento a strtok() per indicare i caratteri delimitatori.
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 hai bisogno di avere una versione non modificata della stringa dopo averla divisa, dovresti fare una copia della stringa originale prima di invocare strtok() .
2: asincrono
Una limitazione significativa di strtok() è che può essere utilizzato solo su una singola stringa alla volta. In altre parole, non puoi usarlo per tokenizzare più stringhe contemporaneamente.
3: Capacità limitata
Un altro potenziale limite è quello strtok() ha una capacità limitata di gestire delimitatori ripetuti. Ad esempio, se la tua stringa ha spazi consecutivi tra le parole, strtok() lo tratta come un singolo delimitatore. Per gestire questi casi, dovrai utilizzare un approccio diverso.
Conclusione
IL strtok() function è una funzione molto utile per dividere le stringhe nella programmazione C. Prende una stringa di input e una stringa delimitatrice 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.