Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hadel

Strcat com ponteiros.

Recommended Posts

Boa tarde galera,

 

Estou desenvolvendo uma função, onde irei retirar os espaços da string com o auxilio da função strtok, e concatenar os fragmentos em uma nova string. Mas estou tendo problemas. Alguem pode me ajudar? O código segue a baixo.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
  char frase[] = "teste teste1 teste2";
  char *parte;
  char *parteaux;
  
  parteaux = (char*)strtok(frase, " ");
  
  while(parteaux != NULL){
    printf("%s - %s\n", parteaux,parte);
    parteaux = (char*)strtok(NULL, " ");
    strcat(parte, parteaux);
  }
  
  printf("parte =%s\n", parte);
  printf("\n\n");
  system("pause");
  return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele compila normalmente, mas quando o executo, imprime somente o primeiro print e da o erro, pedindo para fechar o programa.

 

Estou utilizando Devc++ e pelo que vi esta utilizando o Gcc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, eu comecei a compilar direto do prompt com o gcc, e aloquei a variável que eu quero receber a concatenação, como mostra o código

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
  char frase[100] = "teste teste1 teste2";
  char* parteaux;
  char* parte = (char*)malloc(strlen(frase));
  *parte='\0';
    
  parteaux = (char*)strtok(frase, " ");
  
  while(parteaux != NULL){
	strcat(parte,parteaux);
	printf("\nparte-> %s\n",parte);
	printf(parteaux);
    parteaux = (char*)strtok(NULL, " ");
  }
  printf("\n\n");
  system("pause");
  return 0;
}

Dessa maneira deu certo, não sei se é a melhor maneira, mas dessa forma funcionou corretamente e sem erros! Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.