Ir para conteúdo

POWERED BY:

Arquivado

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

Débora de Oliveira

[Resolvido] Concatenação de strings

Recommended Posts

Olá pessoal, gostaria de uma ajuda, fiz um programa que concatena (une) 2 strings, tenho que alocar dinamicamente a string resultante

O problema do meu programa é que ao invés de sair assim :

 

 

A B C D E F

 

 

a resposta sai:

 

 

A B C D E F B C D E F C D E F D E F E F F

 

 

Não consigo achar o erro.. se alguém descobri por favor m falem!

Obrigada

Aí está o código!

 

 

CODE
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

 

 

 

int concatena(char str1[],char str2[],char* str_conc){

int cont=0,i;

for (i=0;str1!='\0';i++){

str_conc=str1;

cont++;

}

for (i=0;str2!=0;i++){

str_conc[cont]=str2;

cont++;

}

str_conc[cont]='\0';

return *str_conc;

}

 

 

 

int main(){

int i;

char resp;

char str1[]={'A','B','C','\0'};

char str2[]={'D','E','F','\0'};

 

char* str_conc=(char*)malloc(sizeof(char));

 

concatena(str1,str2,str_conc);

for (i=0;str_conc!='\0';i++)

printf ("%s",&str_conc);

 

fflush(stdin);getchar();

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro esta no printf...

for (i=0;str_conc[i]!='\0';i++)		printf ("%s",&str_conc[i]);
qnd você usa a saida formatada "%s" ele jah imprimi td a string, ow seja naum precisa usar o for.. e preste atenção você colocow '&' e no printf aki naum precisa, faça simplesmente assim:

printf ("%s", str_conc);

outra coisa pra q criar essa função de concatenar, c o C jah disponibiliza ela para você :lol:

 

procure por strcat();

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro esta no printf...

for (i=0;str_conc[i]!='\0';i++)		printf ("%s",&str_conc[i]);
qnd você usa a saida formatada "%s" ele jah imprimi td a string, ow seja naum precisa usar o for.. e preste atenção você colocow '&' e no printf aki naum precisa, faça simplesmente assim:

printf ("%s", str_conc);

outra coisa pra q criar essa função de concatenar, c o C jah disponibiliza ela para você :lol:

 

procure por strcat();

 

[]'s

 

 

Obrigada!!funcionou certinho!!!

é que o professor tinha pedido para a gente nã usar nenhuma função da biblioteca C.

 

Obrigada novamente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiquei com uma dúvida nesse exercício, ali no malloc() você está alocando 1byte pro ponteiro str_conc certo? Ai quando joga dentro da função, onde você vai efetivamente concatenar, obviamente o ponteiro str_conc precisará de mais espaço alocado na memória, como isso se só tem 1byte alocado?

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.