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

Como Dividir Cadenas Con Strtok En Programacion C



Dividiendo 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 debe comprender cómo funciona. El strtok() lee la cadena de entrada carácter por carácter hasta que encuentra 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. A continuación, la función devuelve un puntero al primer carácter de la cadena. El strtok() La sintaxis de la función es:

strtok ( carbonizarse * calle , constante carbonizarse * comparto ) ;

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 NULL si no hay más tokens.







¿Cómo dividir cadenas con Strtok() en programación C?

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



#incluir

#incluir

En t principal ( ) {

  carbonizarse aporte [ ] = 'Linux, pista' ;

  carbonizarse * simbólico ;

simbólico = strtok ( aporte , ',' ) ;

  mientras ( simbólico != NULO ) {

imprimir ( '%s \norte ' , simbólico ) ;

simbólico = strtok ( NULO , ',' ) ;

}

  devolver 0 ;

}

En el ejemplo anterior, primero declaramos un puntero a un carácter. entonces 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() vuelve como un puntero a . Luego usamos un ciclo while para iterar a través de la cadena de entrada, usando strtok() con un puntero NULL para continuar dividiendo los tokens restantes. La cadena delimitadora se vuelve a pasar 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 sin modificar 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 importante de strtok() es que solo se puede usar en una sola cadena a la vez. En otras palabras, no puede usarlo para tokenizar varias 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 único 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 programación C. Toma una cadena de entrada y una cadena delimitadora 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 en su lugar. Ahora que sabe cómo hacerlo, puede cortar cualquier hilo en pedazos más pequeños para procesarlos.