LucasAntonioCarneiro Postado Novembro 20, 2012 Denunciar Share Postado Novembro 20, 2012 Pessoal,Estou tentando colocar várias strings em um mesmo vetor, porém só estou conseguindo pegar lixo. Quero pegar duas variáveis separadas , cada uma contendo uma string e armazenar as duas variáveis em uma terceira variável. como posso fazer isso? char i[7]="Lucas;"; char t[10]= "Carneiro"; char n[17]; int k=0; int p; for (p=0;p<17;p++){ n[p]=i[p]; if (p>9) { n[p]= k; k=k+1; } } printf ("O valor junto %s\n",n); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Dan Oliveira Postado Novembro 20, 2012 Denunciar Share Postado Novembro 20, 2012 (editado) Em c não temos strings como tipos de dados, então para lermos uma sequencia de caracteres temos que colocar no final o caractere terminador '\ 0'.Por isso temos que declarar seu tamanho com um caractere a mais.Ex:char nome[7] = "Daniel"; // é o mesmo que {'D', 'a', 'n', 'i', 'e, 'l', '\ 0'};todas as funções que trabalham com string trabalham até encontrar esse caractere. então a string n acima ficaria assim{'L', 'u', 'c', 'a', 's', ';', '\ 0', 'C', 'a', 'r', 'n', 'e', 'i', 'r', 'o', '\ 0'};a função printf() só vai ler até o primeiro caractere terminador da string ou seja Lucas; '\ 0'. Ops encontrou o caractere a string acaba aqui!aqui vai o código certo#include <stdio.h> int main() { char i[7]="Lucas;"; char t[10]= "Carneiro"; char n[15]; //Menos dois caracteres '\ 0' int k; int p; for (p = 0; i[p] != '\ 0'; p++)//enquanto não for o final de i n[p] = i[p];//atribui do indice 0 em diante // p = 6 for(k = 0; t[k] != '\ 0'; k++, p++)//enquanto não for o final de t n[p] = t[k];//atribui do indice 6 em diante // p = 15 n[p] = '\ 0'; printf ("O valor junto %s\n",n); }Obs: o caractere '\ 0' se escreve junto, mas tive problemas com o html ao enviar esse post e aí separei para você vê-lo Editado Novembro 20, 2012 por Dan Oliveira Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 LucasAntonioCarneiro Postado Novembro 21, 2012 Autor Denunciar Share Postado Novembro 21, 2012 (editado) Daniel,Muito obrigado, agora entendi tudo. Eu tinha imaginado que ela estava armazenando isso, mas não tinha certeza.intmain(){ char i[7]="Lucas "; char t[10]= "Carneiro"; char n[16]; //Menos dois caracteres '\ 0' int k; int p; for (p = 0; i[p] != ''; p++){//enquanto não for o final de i n[p] = i[p];//atribui do indice 0 em diante // p = 6 for(k = 0; t[k] != ''; k++){//enquanto não for o final de t n[p+k+1] = t[k];//atribui do indice 6 em diante // p = 15 } } n[p+k]=''; printf ("%s\n",n); system("PAUSE"); return 0;} O codigo correto fica assim, mas foi de grande ajuda o que você escreveu.Obrigado Editado Novembro 21, 2012 por LucasAntonioCarneiro Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
LucasAntonioCarneiro
Pessoal,
Estou tentando colocar várias strings em um mesmo vetor, porém só estou conseguindo pegar lixo.
Quero pegar duas variáveis separadas , cada uma contendo uma string e armazenar as duas variáveis em uma terceira variável. como posso fazer isso?
char i[7]="Lucas;";
char t[10]= "Carneiro";
char n[17];
int k=0;
int p;
for (p=0;p<17;p++){
n[p]=i[p];
if (p>9)
{
n[p]= k;
k=k+1;
}
}
printf ("O valor junto %s\n",n);
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.