Como funciona a função strtok()?
Para dividir uma string usando strtok() , você primeiro precisa entender como ele funciona. O strtok() lê a string de entrada caractere por caractere até encontrar um delimitador. Uma vez que um delimitador é encontrado, strtok() substitui-o por um caractere nulo '\0', dividindo efetivamente a string original em duas partes. Um ponteiro para o primeiro caractere da string é retornado pela função. O strtok() a sintaxe da função é:
strtok ( Caracteres * str , const Caracteres * eu compartilho ) ;O strtok() A função recebe dois argumentos - um ponteiro para o primeiro token no conjunto de tokens e uma string que contém os caracteres delimitadores. Ele retorna um ponteiro para o próximo token, que começa imediatamente após o delimitador que dividiu o último token. Ele retorna NULL se não houver mais tokens.
Como dividir strings com Strtok () na programação C?
Aqui está um exemplo de como usar strtok() para dividir uma string:
#include
#include
int principal ( ) {
Caracteres entrada [ ] = 'Linux, Dica' ;
Caracteres * símbolo ;
símbolo = strtok ( entrada , ',' ) ;
enquanto ( símbolo != NULO ) {
printf ( '%s \n ' , símbolo ) ;
símbolo = strtok ( NULO , ',' ) ;
}
retornar 0 ;
}
No exemplo acima, primeiro declaramos um ponteiro para um char. Nós então usamos strtok() para dividir a string de entrada em tokens. A primeira chamada de strtok() recebe dois argumentos: a string de entrada e a string delimitadora “,”. O primeiro token, “Linux”, é aquele que strtok() retorna como um ponteiro para . Em seguida, usamos um loop while para percorrer a string de entrada, usando strtok() com um ponteiro NULL para continuar dividindo os tokens restantes. A string delimitadora é passada novamente como um argumento para strtok() para indicar os caracteres delimitadores.
Saída
Limitações da Função Strtok()
1: Modifica a String Original
O strtok() a função não retorna uma cópia da string; em vez disso, ele modifica a string original. Portanto, se você precisar ter uma versão não modificada da string após dividi-la, faça uma cópia da string original antes de invocar strtok() .
2: Assíncrono
Uma limitação significativa de strtok() é que ele só pode ser usado em uma única string por vez. Em outras palavras, você não pode usá-lo para tokenizar várias strings simultaneamente.
3: Capacidade Limitada
Outra limitação potencial é que strtok() tem uma capacidade limitada para lidar com delimitadores repetidos. Por exemplo, se sua string tiver espaços consecutivos entre as palavras, strtok() o trata como um único delimitador. Para lidar com esses casos, você terá que usar uma abordagem diferente.
Conclusão
O strtok() function é uma função muito útil para dividir strings na programação C. Ele pega uma string de entrada e uma string delimitadora e retorna um ponteiro para o primeiro token encontrado na string de entrada. strtok() é destrutivo, portanto, se você precisar preservar a integridade da string original, é recomendável criar uma duplicata dela. Agora que você sabe como fazer isso, pode cortar qualquer barbante em pedaços menores para processamento.