C ++ wcstok () - Biblioteca estándar de C ++

La función wcstok () en C ++ devuelve el siguiente token en una cadena ancha terminada en nulo.

La función wcstok () se define en el archivo de encabezado.

prototipo de wcstok ()

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

La función wcstok () toma tres argumentos: str, delim y ptr. Esta función encuentra el token en la cadena ancha apuntada por str. El puntero delimita apunta a los caracteres separadores.

Esta función se puede llamar varias veces para obtener tokens de la misma cadena ancha. Hay dos casos:

  1. Si str no es NULL:
    una llamada a wcstok () se considera la primera llamada para esa cadena ancha. La función busca el primer carácter ancho que no está contenido en delim. Si no se encuentra un carácter tan ancho, la cadena ancha no contiene ningún token. Entonces se devuelve un puntero nulo.
    Si se encuentra un carácter ancho, a partir de ahí la función busca un carácter ancho que esté presente en delim. Si no se encuentra ningún separador, str solo tiene un token. Si se encuentra un separador, se reemplaza por L ' 0' y el puntero al siguiente carácter se almacena en * ptr. Finalmente, la función devuelve el puntero al principio del token.
  2. Si str es NULL:
    la llamada se considera como llamadas posteriores a wcstok y la función continúa desde donde se quedó en la invocación anterior con el mismo * ptr.

Parámetros de wcstok ()

  • str: puntero a la cadena ancha terminada en nulo para tokenizar.
  • delim: puntero a la cadena ancha terminada en nulo que contiene los separadores.
  • ptr: puntero a un puntero a un carácter ancho que wcstok utiliza para almacenar su estado interno.

wcstok () Valor de retorno

  • La función wcstok () devuelve el puntero al principio del siguiente token si hay alguno
  • Devuelve NULL si no se encuentran más tokens.

Ejemplo: ¿Cómo funciona la función 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; )

Cuando ejecute el programa, la salida será:

 Las fichas son: loro búho gorrión paloma cuervo

Articulos interesantes...