Função split em C
Publicado por Eduardo (última atualização em 09/10/2009)
[ Hits: 27.507 ]
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"); }
Fila com Lista Encadeada Descritor/Cabeçalho
Verificar se o e-mail é válido
Equações de primeiro e segundo grau
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
OpenVPN no MACBOOK conecta mas não pinga pastas de rede compartilhada ... (1)
Vou voltar moderar conteúdos de Dicas e Artigos (2)
Melhorando a precisão de valores flutuantes em python[AJUDA] (8)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta