C ++ wcstok () - Libreria standard C ++

La funzione wcstok () in C ++ restituisce il token successivo in una stringa ampia terminata da null.

La funzione wcstok () è definita nel file di intestazione.

prototipo di wcstok ()

 wchar_t * wcstok (wchar_t * str, const wchar_t * delim, wchar_t ** ptr);

La funzione wcstok () accetta tre argomenti: str, delim e ptr. Questa funzione trova il token nella stringa larga puntata da str. Il delim del puntatore punta ai caratteri separatori.

Questa funzione può essere chiamata più volte per ottenere token dalla stessa stringa ampia. Ci sono due casi:

  1. Se str non è NULL:
    una chiamata a wcstok () è considerata la prima chiamata per quella stringa ampia. La funzione cerca il primo carattere largo che non è contenuto in delim. Se non viene trovato alcun carattere così largo, la stringa larga non contiene alcun token. Quindi viene restituito un puntatore nullo.
    Se viene trovato un carattere così largo, da lì in poi la funzione ricerca un carattere largo che è presente in delim. Se non viene trovato alcun separatore, str ha un solo token. Se viene trovato un separatore, viene sostituito da L ' 0' e il puntatore al carattere successivo viene memorizzato in * ptr. Infine, la funzione restituisce il puntatore all'inizio del token.
  2. Se str è NULL:
    la chiamata viene considerata come chiamate successive a wcstok e la funzione continua da dove era stata interrotta nella chiamata precedente con lo stesso * ptr.

Parametri wcstok ()

  • str: puntatore alla stringa ampia terminata da null da tokenizzare.
  • delim: puntatore alla stringa ampia terminata da null che contiene i separatori.
  • ptr: puntatore a un puntatore a un carattere ampio che viene utilizzato da wcstok per memorizzare il proprio stato interno.

wcstok () Restituisce il valore

  • La funzione wcstok () restituisce il puntatore all'inizio del prossimo token, se presente
  • Restituisce NULL se non vengono trovati più token.

Esempio: come funziona la funzione wcstok ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"parrot,owl,sparrow,pigeon,crow"; wchar_t delim() = L"u002c";// unicode for comma wchar_t *ptr; wcout << L"The tokens are:" << endl; wchar_t *token = wcstok(str,delim,&ptr); while (token) ( wcout << token << endl; token = wcstok(NULL,delim,&ptr); ) return 0; )

Quando esegui il programma, l'output sarà:

 I gettoni sono: pappagallo gufo passero piccione corvo

Articoli interessanti...