• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Cypher

[Resolvido] Explicaçao de instruçao. "strok"

5 mensagens neste tópico

Alguém me podias explicar como funciona a isntruçao

strok, ou strok_r...

é que eu não estou a perceber puto ... ja perecbi o que faz mas na pratica inda nao consegui...

cumps...[[]]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Alguém me podias explicar como funciona a isntruçao

strok, ou strok_r...

é que eu não estou a perceber puto ... ja perecbi o que faz mas na pratica inda nao consegui...

cumps...[[]]

Estas a falar da strtok certo?

"A sequence of calls to this function split str into tokens, which are sequences of contiguous characters spearated by any of the characters that are part of delimiters."

Ou seja, através da função char * strtok ( char * str, const char * delimiters ); consegues dividir uma string em várias, tendo como base da divisao um separador. Ou seja, defines um separador e sempre que esse mesmo separador surgir na string ela é dividia nesse ponto.

Exemplo:

/* strtok example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] ="- This, a sample string.";
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str," ,.-");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,.-");
  }
  return 0;
}

Resultado:

Splitting string "- This, a sample string." into tokens:
This
a
sample
string

Assim, se quiseres dividir a string "OLÁ MUNDO. ADEUS MUNDO." sempre que encontrares um espaço fazes:

char str[20] = "OLÁ MUNDO. ADEUS MUNDO.";
strtok (str," ");
strtok (NULL," ");
strtok (NULL," ");

Resultado:

OLÁ
MUNDO.
ADEUS
MUNDO.

Apenas na primeira chamada à função é que colocas o nome da string. As restantes chamadas colocas NULL (a não ser que querias usar a função com outra string claro).

"On a first call, the function expects a C string as argument for str, whose first character is used as the starting location to scan for tokens. In subsequent calls, the function expects a null pointer and uses the position right after the end of last token as the new starting location for scanning."

Está tudo aqui:

http://www.cplusplus.com/reference/clibrary/cstring/strtok.html

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora