Cómo dividir las cuerdas con Strtok en la programación C?

Cómo dividir las cuerdas con Strtok en la programación C?
Distribución de cuerdas es importante por varias razones, como el procesamiento de texto, el análisis de datos o el análisis, y el lenguaje de programación C ofrece numerosas formas de manejar esta tarea. Sin embargo, la función C más popular que permite cadena dividida en múltiples tokens por un delimitador especificado es Strtok (). Al ser una función de biblioteca, está disponible en la biblioteca C estándar que admite operaciones de cadena.

¿Cómo funciona la función strtok ()??

Para dividir una cadena usando Strtok (), primero necesitas entender cómo funciona. El Strtok () Lee el personaje de cadena de entrada por personaje hasta que se encuentra con un delimitador. Una vez que se encuentra un delimitador, Strtok () lo reemplaza con un carácter nulo '\ 0', dividiendo efectivamente la cadena original en dos partes. La función devuelve un puntero al primer carácter de la cadena. El Strtok () La sintaxis de la función es:

strtok (char* str, const char* delim);

El Strtok () La función toma dos argumentos: un puntero al primer token en el conjunto de tokens y una cadena que contiene los caracteres delimitadores. Devuelve un puntero al siguiente token, que comienza inmediatamente después del delimitador que dividió el último token. Devuelve nulo si no hay más tokens.

Cómo dividir cadenas con strtok () en la programación C?

Aquí hay un ejemplo de cómo usar Strtok () Para dividir una cadena:

#incluir
#incluir
int main ()
char entrada [] = "Linux, Sugerencia";
char *token;
token = strtok (entrada, ",");
mientras (token != Nulo)
printf ("%s \ n", token);
token = strtok (nulo, ",");

regresar 0;

En el ejemplo anterior, primero declaramos un puntero a un char. Luego usamos Strtok () Para dividir la cadena de entrada en tokens. La primera llamada de Strtok () Toma dos argumentos: la cadena de entrada y la cadena delimitadora "",. El primer token, "Linux", es el que Strtok () regresa como un puntero a. Luego usamos un bucle de tiempo para iterar a través de la cadena de entrada, usando Strtok () con un puntero nulo para continuar dividiendo las fichas restantes. La cadena delimitadora se pasa nuevamente como argumento a Strtok () para indicar los caracteres delimitadores.

Producción

Limitaciones de la función Strtok ()

1: modifica la cadena original

El Strtok () La función no devuelve una copia de la cadena; en su lugar, modifica la cadena original. Por lo tanto, si necesita tener una versión no modificada de la cadena después de dividirla, debe hacer una copia de la cadena original antes de invocar Strtok ().

2: Asíncrono

Una limitación significativa de Strtok () es que solo se puede usar en una sola cadena a la vez. En otras palabras, no puede usarlo para tokenizar múltiples cadenas simultáneamente.

3: Capacidad limitada

Otra limitación potencial es que Strtok () tiene una capacidad limitada para manejar delimitadores repetidos. Por ejemplo, si su cadena tiene espacios consecutivos entre palabras, Strtok () lo trata como un solo delimitador. Para manejar tales casos, tendrá que usar un enfoque diferente.

Conclusión

El Strtok () La función es una función muy útil para dividir cadenas en la programación C. Toma una cadena de entrada y una cadena de delimitador y devuelve un puntero al primer token que se encuentra en la cadena de entrada. Strtok () es destructivo, por lo tanto, si necesita preservar la integridad de la cadena original, se recomienda crear un duplicado de ella. Ahora que sabe cómo hacerlo, puede cortar cualquier cuerda en piezas más pequeñas para procesar.