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

Come Dividere Le Stringhe Con Strtok Nella Programmazione C



Spaccare le corde è 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 corda spaccata in più token da un delimitatore specificato è strtok() . Essendo una funzione di libreria, è disponibile nella libreria C standard che supporta le operazioni sulle stringhe.

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.