Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- /**Algumas observações:
- * Para dividir a string em substrings, passe como referência o elemento após o espaço (linhas 15, 17, 35 e 37);
- * Se a aritmética de ponteiros for em base dos índices da string, como no meu caso, é importante lembrar que precisa retornar a referência toda hora para o começo (linhas 42 e 47).
- */
- int* identifica(char linha[])
- {
- int i, j=1, *aux=malloc(((strlen(linha)/2)+1)*sizeof(int));
- for (i=0; i<strlen(linha); i++)
- {
- if (linha[i-1] == ' ')
- {
- aux[j] = i;
- j++;
- }
- }
- aux[0]=j;
- return aux;
- }
- char** separar(char linha[])
- {
- int i, j, k=1, *aux=identifica(linha), aux2=strlen(linha);
- int l=aux[0];
- char **vetor=malloc(l*sizeof(char*)), *aux3;
- for (i=0; i<l; i++)
- vetor[i]=malloc(80*sizeof(char));
- for (i=0; i<aux2; i++)
- {
- if (i == aux[k])
- {
- linha[i-1] = '\0';
- k++;
- }
- }
- k=0;
- aux3=linha;
- for (j=l-1; j>=0; j--)
- {
- strcpy(*(vetor+k),linha);
- linha=aux3;
- linha=linha+aux[k+1];
- k++;
- }
- return vetor;
- }
- void main() {
- char linha[80], **vetor, aux[80];
- fgets(linha,80,stdin);
- strcpy(aux,linha);
- vetor=separar(linha);
- int i, *l=identifica(aux);
- for (i=0; i<*l; i++)
- printf("%s\n", vetor[i]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement