Opá, será que poderia ajudar um gafanhoto?
Qual a lógica que estou tentando fazer.Pedir um nome e armazenar no vetor nome, passar o endereço de memoria de vetor com o nome para ponteiro, imprimir na tela, depois ponteiro recebe o segundo vetor com seu valor e escreve na tela o valor do primeiro vetor com o novo nome armazenado.
[code=c]
//quero passar um endereço de memoria de um vetor para um ponteiro, e depois passar o valor de string para o ponteiro.
#include
main(){
char nome[100],nome1[100]="paulo",*pont;
printf("Digite seu nome: ");
scanf("%s", &nome);
pont=nome;//pont recebe o endereço de nome
printf("Meu nome \202 %s\n", nome);
*pont=nome1;//pont recebe o valor de nome1 e envia o valor no endereço de nome.
printf("Meu nome \202 %s", *pont);
}
[/code]
1-Uma matriz é um ponteiro constante, está correto isso?Testei com & e sem para ter certeza, passagem por referencia de pont=nome;.
2-Cadeia de Caracter é entre aspas duplas?(apostila....)
3-Está correto está forma de fazer, da para fazer mas não é semantico?
Imagens do debbuger:
Case 1
Os vetores armazenaram a entrada.
https://prntscr.com/ff8pi5
Case 2
Ponteiro recebe endereço da variavel e valor.
https://prntscr.com/ff8pjy
Case 3
Erro na hora de armazenar o valor da variavel nome1, primeira letra sobreescrita
']https://prntscr.com/ff8pn8
Procurei no forum, acabei aprendendo sobre a biblioteca string.h e sua função strcpy.
Como o código ficou com a solução:
[code=c]
#include
#include
main(){
char nome[100],nome1[100]="paulo";
printf("Digite seu nome: ");
scanf("%s", &nome);
printf("Meu nome \202 %s\n", nome);
strcpy(nome,nome1);//pont recebe o valor de nome1 e envia o valor no endereço de nome.
printf("Meu nome \202 %s", nome1);
}
[/code]
Mesmo assim gostaria de entender a falha acima.
prhio
Novo Membro
Registrado
17 Mensagens
7 Curtidas