Aqui você vê as diferenças entre duas revisões dessa página.
| — |
strtok [2009/05/11 18:08] (atual) laureano criada |
||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | ====== Função strtok ====== | ||
| + | Arquivo header: | ||
| + | <code c>#include <string.h></code> | ||
| + | |||
| + | ---- | ||
| + | |||
| + | Sintaxe | ||
| + | |||
| + | ''[[tipos_dados|char *]] strtok( [[tipos_dados|char *]] endereçoStrOrigem, [[tipos_dados|char *]] endereçoStrDelimitador);'' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | A função **strtok** devolve um ponteiro para a próxima palavra na string apontada por ''endereçoStrOrigem''. Os caracteres que formam a string apontada por ''endereçoStrDelimitador'' são os delimitadores que terminam a palavra. Um ponteiro nulo é devolvido quando não há mais palavras na string. | ||
| + | |||
| + | Na primeira chamada à função ''strtok'', o ''endereçoStrOrigem'' é realmente utilizado na chamada. Nas chamadas seguintes deve-se usar um ponteiro nulo como primeiro argumento. | ||
| + | |||
| + | Pode-se utilizar um conjunto diferente de delimitadores para cada chamada à ''strtok''. | ||
| + | |||
| + | <code c> | ||
| + | /* strtok.c */ | ||
| + | |||
| + | #include <stdio.h> | ||
| + | #include <string.h> | ||
| + | |||
| + | int main(void) | ||
| + | { | ||
| + | char *psRetorno; | ||
| + | char sFrase[]="Mario Quintana, o maior poeta gaúcho"; | ||
| + | |||
| + | printf("\nFrase = %s", sFrase); | ||
| + | |||
| + | /* Primeira pesquisa por espaço em branco. */ | ||
| + | psRetorno = strtok(sFrase, " "); | ||
| + | |||
| + | printf("\nRetorno = %s", psRetorno); | ||
| + | printf("\nFrase = %s", sFrase); | ||
| + | |||
| + | do | ||
| + | { | ||
| + | /* Nas próximas chamadas, deve-se passar um ponteiro “nulo”. | ||
| + | Isto “indica” para a função que a pesquisa deve continuar | ||
| + | no ponteiro anterior. */ | ||
| + | psRetorno = strtok('\0', ", "); //Demais pesquisas por , (vírgula) ou espaço em branco. | ||
| + | |||
| + | /* Um valor nulo (NULL) é considerado sempre falso em comparações | ||
| + | booleanas (verdadeiro ou falso). */ | ||
| + | if(psRetorno) | ||
| + | { | ||
| + | printf("\nRetorno = %s", psRetorno); | ||
| + | } | ||
| + | } while(psRetorno); | ||
| + | return 0; | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | --- //[[marcos@laureano.eti.br|Marcos Laureano]] 2009/05/11 18:10// | ||