std:: wcstok
|
Definido en el encabezado
<cwchar>
|
||
|
wchar_t
*
wcstok
(
wchar_t
*
str,
const
wchar_t
*
delim,
wchar_t
**
ptr
)
;
|
||
Encuentra el siguiente token en una cadena ancha terminada en nulo apuntada por str . Los caracteres separadores son identificados por la cadena ancha terminada en nulo apuntada por delim .
-
-
Si
str
!
=
nullptr
, la llamada se trata como la primera llamada a
std::wcstokpara esta cadena ancha en particular. La función busca el primer carácter ancho que no está contenido en delim .
-
- Si no se encuentra dicho carácter ancho, no hay tokens en str en absoluto, y la función devuelve un puntero nulo.
- Si se encuentra dicho carácter ancho, este es el inicio del token . La función luego busca desde ese punto el primer carácter ancho que sí está contenido en delim .
-
-
Si no se encuentra dicho carácter ancho,
str
tiene solo un token, y las llamadas futuras a
std::wcstokdevolverán un puntero nulo. - Si se encuentra dicho carácter ancho, este es reemplazado por el carácter nulo L ' \0 ' y el estado del analizador (normalmente un puntero al siguiente carácter ancho) se almacena en la ubicación proporcionada por el usuario * ptr .
-
Si no se encuentra dicho carácter ancho,
str
tiene solo un token, y las llamadas futuras a
- La función luego devuelve el puntero al inicio del token.
-
Si
str
==
nullptr
, la llamada se trata como una llamada posterior a
std::wcstok: la función continúa desde donde se quedó en la invocación anterior con el mismo * ptr . El comportamiento es el mismo que si se pasara como str el puntero al carácter ancho que sigue al último token detectado.
-
Si
str
!
=
nullptr
, la llamada se trata como la primera llamada a
Contenidos |
Parámetros
| str | - | puntero a la cadena ancha terminada en nulo que se va a tokenizar |
| delim | - | puntero a la cadena ancha terminada en nulo que identifica los delimitadores |
| ptr | - | puntero a un objeto de tipo wchar_t * , que es utilizado por wcstok para almacenar su estado interno |
Valor de retorno
Puntero al inicio del siguiente token o puntero nulo si no hay más tokens.
Nota
Esta función es destructiva: escribe los
L
'
\0
'
caracteres en los elementos de la cadena
str
. En particular, un literal de cadena ancha no puede usarse como primer argumento de
std::wcstok
.
A diferencia de std::strtok , esta función no actualiza el almacenamiento estático: almacena el estado del analizador en la ubicación proporcionada por el usuario.
A diferencia de la mayoría de otros tokenizadores, los delimitadores en
std::wcstok
pueden ser diferentes para cada token subsiguiente, e incluso pueden depender del contenido de los tokens anteriores.
Ejemplo
#include <cwchar> #include <iostream> int main() { wchar_t input[100] = L"A bird came down the walk"; wchar_t* buffer; wchar_t* token = std::wcstok(input, L" ", &buffer); while (token) { std::wcout << token << '\n'; token = std::wcstok(nullptr, L" ", &buffer); } }
Salida:
A bird came down the walk
Véase también
|
encuentra el siguiente token en una cadena de bytes
(función) |
|
|
C documentation
para
wcstok
|
|