Como dividir as cordas com o STRTOK na programação C?

Como dividir as cordas com o STRTOK na programação C?
Strings dividindo é importante por várias razões, como processamento de texto, análise de dados ou análise, e a linguagem de programação C oferece várias maneiras de lidar com esta tarefa. No entanto, a função C mais popular que permite String de divisão em vários tokens por um delimitador especificado é strtok (). Sendo uma função da biblioteca, está disponível na biblioteca C padrão que suporta operações de string.

Como funciona a função strtok ()?

Para dividir uma corda usando strtok (), você primeiro precisa entender como funciona. O strtok () lê o caractere de string de entrada por caractere até que ele se depare com 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 personagem da string é então retornado pela função. O strtok () A sintaxe da função é:

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

O strtok () Função leva dois argumentos- um ponteiro para o primeiro token no conjunto de tokens e uma string que manté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 nulo se não houver mais tokens.

Como dividir as cordas com strtok () na programação C?

Aqui está um exemplo de como usar strtok () para dividir uma corda:

#incluir
#incluir
int main ()
char input [] = "Linux, dica";
char *token;
token = strtok (entrada, ",");
enquanto (token != Null)
printf ("%s \ n", token);
token = strtok (null, ",");

retornar 0;

No exemplo acima, declaramos primeiro um ponteiro para um char. Nós então usamos strtok () Para dividir a sequência de entrada em tokens. A primeira chamada de strtok () leva dois argumentos: a sequência de entrada e a string delimiter ",". O primeiro token, "Linux", é o que strtok () retorna como um ponteiro para. Em seguida, usamos um loop de tempo para iterar através da sequência de entrada, usando strtok () com um ponteiro nulo para continuar dividindo os tokens restantes. A string delimiter é novamente passada como um argumento para strtok () para indicar os caracteres delimitadores.

Saída

Limitações da função strtok ()

1: modifica a sequência original

O strtok () A função não retorna uma cópia da string; Em vez disso, ele modifica a sequência original. Portanto, se você precisar ter uma versão não modificada da string depois de dividi -la, você deve fazer uma cópia da string original antes de invocar strtok ().

2: assíncrono

Uma limitação significativa de strtok () é que só pode ser usado em uma única string de cada vez. Em outras palavras, você não pode usá -lo para tokenizar várias cordas 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 () trata isso como um único delimitador. Para lidar com esses casos, você terá que usar uma abordagem diferente.

Conclusão

O strtok () A função é 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 sequência de entrada. Strtok () é destrutivo; portanto, se você precisar preservar a integridade da string original, é aconselhável criar uma duplicata dela em vez disso. Agora que você sabe como fazer isso, você pode cortar qualquer corda em pedaços menores para processamento.