Ir ao conteúdo
  • Cadastre-se

C Exercicio de concatenação de strings


carlosarg

Posts recomendados

Pessoal, estava fazendo um exercício de concatenação de strings em C, e me deparei com um erro de "variable-sized object may not be initialized", não sei o que é esse erro exatamente e não consigo achar onde está o erro no meu código, então se alguém puder me mostrar onde está o erro. (Eu sei que existem maneiras bem mais eficientes de fazer esse exercício, mas fiz assim pois é dessa forma que foi passado na aula)

OBS: Estou usando o codeblocks.

 

O objetivo do exercicio é juntar as strings p1 e p2 na pf e mostrar ela na tela.

#include <stdio.h>
int main()
{

    void conc(char a[], char b[], char c[]);
    char p1[]={'e','a','e',' '};
    char p2[]={'m', 'a', 'n'};
    char pf[7];

conc(p1, p2, pf);

int q;

for (q=0; q<7; ++q){
printf("%c", pf[q]);} 

return 0;
}

    void conc(char a[], char b[], char c[])
    {        int i,k;
        for (i=0; i<4; ++i){char pf=char p1;}   \\ o compilador diz que o erro está nessa linha \\
        for (k=0; k<3; ++k){char pf[k+4]=char p2[k];} 
    } 

 

Link para o comentário
Compartilhar em outros sites

Tem alguns erros na sua função conc.Tenta isso:

void conc(char a[], char b[], char c[])
    {        
        int i,k;
        for (i=0; i<3; ++i){c[i]=a[i];}  //Faltou utilizar o índice [i], lembrando que o indíce vai até no máximo 2. Além disso, não precisa colocar o tipo (char) na frente. Por fim, as variáveis dos parâmetros da função são a, b e não pf, p1, p2
        for (k=0; k<3; ++k){c[k+3]=b[k];} //De novo, não pcolocar o tipo (char) na frente e o nome das variíaveis são c e b.
    }

 

Link para o comentário
Compartilhar em outros sites

Em 17/01/2019 às 17:51, Flávio Pedroza disse:

Tem alguns erros na sua função conc.Tenta isso:


void conc(char a[], char b[], char c[])
    {        
        int i,k;
        for (i=0; i<3; ++i){c[i]=a[i];}  //Faltou utilizar o índice [i], lembrando que o indíce vai até no máximo 2. Além disso, não precisa colocar o tipo (char) na frente. Por fim, as variáveis dos parâmetros da função são a, b e não pf, p1, p2
        for (k=0; k<3; ++k){c[k+3]=b[k];} //De novo, não pcolocar o tipo (char) na frente e o nome das variíaveis são c e b.
    }

 

Era isso mesmo, agora funcionou, muito obrigado!

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...