Função strtok em c

Função strtok em c

“A função strtok () é uma função de biblioteca C predefinida que nos permite dividir strings em múltiplas cordas ou zero, o ponto mais importante enquanto dividindo seqüências para ter em mente é que não pode ser vazia ou nula.

Dois parâmetros são passados ​​para a função strtok () responsável por tokenizar a string; O primeiro parâmetro é o que mantém a sequência que deve ser tokenizada, enquanto a segunda é o delimitador que mantém a palavra -chave ou o personagem que definirá o início e o fim da string em que é tokenizada. A função strtok () ignora a parte do delimitador e simplesmente exibe a string que fica ao lado do delimitador.

Sempre que a função strtok () é chamada, o ponteiro para o próximo token, que é indicado por uma corda terminada nula, é retornada. Quando é responsável pelo final da string, onde não é descoberto o token, ele retornará nulo.”

Sintaxe: m

$ strtok (string, token);

Na sintaxe mencionada acima, dois argumentos são passados: o primeiro parâmetro, "string", é o que é a sequência principal que deve ser analisada, enquanto o segundo parâmetro "Token" é o delimitador que definirá a quebra da quebra ponto da corda.

Suponhamos quando a função strtok () é chamada pela primeira vez, ela começará a procurar o delimitador de personagens passo a passo. Como sabemos, as cordas são armazenadas na forma de uma matriz que aloca endereços de memória consecutivos para armazenar o ponteiro um por um que verificará o delimitador. Caso o delimitador seja encontrado, ele dividirá a string em segmentos; Se nenhum delimitador for encontrado, ele procurará o terminador ou o valor nulo, o que indicará o ponto final da string, então ele retornará o valor nulo.

Depois que a string é dividida, ela não pode ser convertida em seu estado original. Para evitar isso, precisamos primeiro copiar a string no buffer e depois passaremos o endereço do buffer para o strtok () para que, através disso, possamos preservar nossa string original.

Exemplo 1

Neste exemplo, vamos implementar a função strtok () para quebrar a string única em vários segmentos. Mudando para o nosso primeiro passo em que declaramos arquivos de cabeçalho “String.h "e" stdio.h ". Como vamos trabalhar com strings, é necessário incluir um arquivo de cabeçalho de string, a menos que não possamos implementar strings. Em seguida, movendo -se para nossa função principal, onde declaramos 3 matrizes de caracteres que são string [], del [] e a variável de personagem chamada My Token.

String [] é a matriz de caracteres responsável por manter uma série de caracteres que serão analisados ​​para dividi -la em partes. O Dell [] é a matriz de caracteres constante que funciona como um delimitador, ou podemos dizer que é o personagem que definirá o ponteiro, quando deve quebrar a string; No nosso caso, o delimitador é "vírgula". Onde a terceira variável, MyToken, é responsável por armazenar o valor de retorno da função strtok ().

#incluir
#incluir
int main ()
char string [] = "Meu novo projeto, meu projeto strtok";
const char del [] = ",";
char *mytoken;
myToken = strtok (string, del);
enquanto (mytoken != Null)
printf (" %s \ n", mytoken);
myToken = strtok (nulo, del);

retornar (0);

Depois de declarar com sucesso nossas variáveis, atribuiremos variáveis ​​myToken a função strtok () na qual passaremos as variáveis ​​como o parâmetro que já declaramos acima, a matriz de string e a variável delimitadora. Então criamos um pouco de loop em que passamos nossa variável mytoken, que está mantendo o valor de retorno da função strtok (). Enquanto o loop verificará a condição que aplicamos; Se o Mytoken não for nulo, ele se moverá para a parte interna do While Loop; Caso contrário, não exibirá nenhuma execução.

Vamos supor que nossa condição seja verdadeira; Em seguida, ele imprimirá a string que está sendo dividida em segmentos. Então, novamente, atribuindo a função MyToken a strtok () na qual agora passaremos o elemento nulo e o delimitador. Null é usado para instruir a função strtok () para interromper a análise e retornar nulo /0 sempre que a string for encerrada, ou uma variável nula é descoberta.

Até que toda a corda seja buscada para delimitadores e dividida em cordas de acordo com o delimitador definido, enquanto o loop não vai parar de funcionar. Ele imprimirá a corda ao lado de todos os delimitadores e termina sempre que o delimitador for descoberto. No nosso caso, usamos apenas um delimitador em nossa frase, então ela apenas se divide em dois segmentos, como mostrado na figura abaixo.

Exemplo 2

Neste exemplo, estaremos dividindo matrizes de cordas em vários segmentos usando espaços como nosso delimitador. No exemplo acima, apenas dividimos duas cordas em segmentos, mas nisso, usaremos espaços como nosso delimitador e quebraremos uma corda em vários segmentos.

#incluir
#incluir
int main ()

char string [] = "minha função strtok na linguagem C";
char *strtoken;
strToken = strtok (string, "");
enquanto (strtoken != Nulo)

printf ("%s \ n", strtoken);
strToken = strtok (nulo, "");

retornar 0;

Conforme mostrado no código acima, apenas incluímos nosso arquivo de cabeçalho; Depois de incluir o arquivo de cabeçalho, entraremos em nossa função principal, onde declararemos duas variáveis ​​de caracteres nas quais se será responsável por manter a string e a segunda que será responsável por manter o valor de retorno da função strtok (). Nesse caso, temos a variável "String []" que armazena a string a ser dividida, enquanto o "strtoken" é usado para armazenar o valor de retorno da função strtok ().

Em seguida, chamaremos a função strtok (), que passamos para parâmetros, então, uma é a string que deve ser analisada, e a segunda é o próprio delimitador; Neste exemplo, o delimitador é espaço. Como mostrado na figura abaixo, sempre que o espaço for descoberto, ele dividirá a corda nos segmentos. O delimitador não será impresso a primeira letra até o final em que o próximo delimitador será encontrado; Ele imprimirá toda essa corda entre delimitadores.

Conclusão

Neste guia, estudamos a função strtok () brevemente, na qual descrevemos o objetivo da função strtok (), bem como sua implementação e como dividiremos uma única string em vários segmentos usando uma única variável de caractere que é a delimitador. A função strtok () é fácil de usar e interpretar strings. O objetivo do nosso artigo é facilitar o aprendizado da função strtok () por definição e por vários exemplos.