Função split em C
Publicado por Eduardo (última atualização em 09/10/2009)
[ Hits: 28.090 ]
Função para separar uma frase por um separador definido pelo usuário e retornar uma matriz com todas as partes separadas. O retorno é um ponteiro duplo (**retorno), portanto no programa principal deve-se criar uma variável ponteiro para ponteiro de char:
EX:
int main()
{
char **mat= split("06/10/2009",'/');
//aqui é possível utilizar o "mat" com índices... exemplo:
for(i=0;i<3;i++)
printf("%s\n",mat[i]);
}
Saída: 06
/****/ 10
/****/ 2009
Espero que gostem ^_^
char **split(char frase[], char separador)
{
int i, j, k, contsep = 0;
for(i=0,contsep=0;i<strlen(frase);i++)
if(frase[i] == separador)
contsep++;
char aux[contsep][20];
char **result = (char**)malloc(contsep*sizeof(char));
if(contsep)
{
for(i=0; i<=contsep; i++ )
*(result + i) = (char*)malloc(40*sizeof(char));
for(i=0,k=0,j=0; i < strlen(frase); i++)
if(frase[i] != separador)
{
aux[k][j] = frase[i];
j++;
}
else
{
aux[k][j] = 0;
k++;
j=0;
}
aux[k][j] = 0;
for(i=0;i<=contsep;i++)
*(result+i) = strcpy(*(result+i), aux[i]);
return result;
}
else
mensagem("Nenhum Separador Encontrado");
}
Automato Finito Determinístico
Pegando entrada do teclado e guardando em uma string
METODO DA FALSE POSIÇÃO E BISSEÇÃO em "C"
Mini Analisador Léxico que conta palavras numa string
O Editor de Texto Nano: Simplicidade no Terminal
SynapSeq - programa para estimular as ondas cerebrais
Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
Preparando-se para certificações da LPI através do LPI Lab
Migração de Arch Linux para repositórios CachyOS (Uso de Instruções v3 e v4)
Jogando "Magic" gratuitamente no Linux
Zoxide e fzf no bash para incrementar o uso do Terminal
As diferencas entre o clipboard comum e a selecao ativa
Arch Linux com repos do CachyOS para otimização ou usar Gentoo?
Eu aprendi o segredo das artes! hahaha (4)
A falsa sensação de que entende a tal da palavra! (0)
Como instalo o Clipper/Harbour no Linux Ubuntu (0)









