Ir ao conteúdo
  • Cadastre-se

Ajuda para concatenar strings


Rodrigo vogt
Ir à solução Resolvido por CiroboyBR,

Posts recomendados

Olá, boa tarde.

Estou com dúvidas quanto a concatenação entre uma string e um número inteiro.

por exemplo: o programa deve juntar um nome (que pode ser tratado aqui como Fulano), o qual eu trato como um vetor de char simples.

Em seguida, um número gerado aleatóriamente deve ser concatenado através do comando strcpy ou strcat, não sei bem ao certo qual usar.

O problema é que ao tentar juntar, o compilador apresenta o seguinte erro: 

                 invalid conversion from ‘int’ to ‘const char*’

Para o seguinte caso:

                strcat (novo->fone, j);

Sei que o problema é que o comando strcat, que estou usando espera o repasse de uma string, e não faço a mínima ideia de como fazer para que o número inteiro seja concatenado;

Agradeço dsd já;

Link para o comentário
Compartilhar em outros sites

OBS: sempre que  for postar perguntas inclua o seu código para facilitar a locaização do erro.

 

deixa eu ver se eu entendi, você tem uma string qualquer e precisa adicionar um número gerado aletoriamente ao fim dela, é isso? Por exemplo a string fulano mais o número aleatório 56 fica "fulano56"?

 

outra coisa: o strcat é usado pra concatenar duas strings, ou seja, a função vai procurar o caractere nulo e depois copiar a segunda string, ex:

 

char string1[50] = "clube do ", string2[50] = "hardware";
strcat (string1, string2);
printf("%s\n\n", string1);
  
 

 

quando executado mostra: "Clube do Hardware"

 

já strcpy não procura o caractere nulo, ele simplesmente copia a string pra onde você indicar, por exemplo, você tem 2 strings:

 

char string1[50] = "clube do ";

 

e string2:

 

char string2[50] = "hardware"

 

dessa forma você poderia criar um laço for e copiar a string 2 pro meio da string1, assim ficaria "clube hardware do" por exemplo.

 

Mas pra gente te ajudar você precisa postar o seu código aqui. 

Link para o comentário
Compartilhar em outros sites

o código em si é muito grande, então segue apenas a struct e a função correspondente:
 
typedef struct contato{
  char nome[40];
  char fone[30];
  contato *prox;
  contato *anterior;
}tpcontato;

 

tpcontato *criarlista(tpcontato *l){

  int i, j;
  tpcontato* novo = (tpcontato *) malloc(sizeof(tpcontato));
  i = rand()%900+100;
  j = rand()%999999+99000000;
  strcpy (novo->nome, "Fulano: ");
  strcat (novo->nome, i);
  strcpy (novo->nome, "Fone: ");
  strcat (novo->fone, j);
  novo->anterior = l;
  l->prox = novo;
  return novo;
}
 
Agradeço novamente pela atenção;
Link para o comentário
Compartilhar em outros sites

  • Solução


typedef struct contato{

char nome[40];

char fone[30];

contato *prox;

contato *anterior;

}tpcontato;

tpcontato *criarlista(tpcontato *l){

int i, j;

char aux[40]; // Variavel string auxiliar

tpcontato* novo = (tpcontato *) malloc(sizeof(tpcontato));

i = rand()%900+100;

j = rand()%999999+99000000;

strcpy (novo->nome, "Fulano: ");

itoa(i, aux, 10); // converte o numero inteiro i em string e coloca dentro da variavel aux

strcat (novo->nome, aux);

strcpy (novo->nome, "Fone: ");

itoa(j, aux, 10); // converte o numero inteiro j em string e coloca dentro da variavel aux

strcat (novo->fone, j);

novo->anterior = l;

l->prox = novo;

return novo;

}

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...