Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Aí moćada, to com sérios problemas.
Primeiro vamos comećar do princípio: strings.
Qual a diferenća de declarar:
char *nome;e
char nome[]?
Se eu declarar da primeira maneira eu teria que usar alocaćão dinâmica de memória?
Certo. Agora para ler:
scanf("%s", &nome)ou
scanf("%[^\n]", &nome)ou
scanf("%[A-Z a-z]", &nome)ou
gets(nome)?
Se eu usar a primeira forma, ele nao pega os espaćos, e no caso de cadastramento de pessoas eu precisaria de espaćos, certo?
Na segunda forma ele compila e roda, mas acontece que ele pede o RA direto. Na terceira, mesma coisa.
No gets(nome) acontece severos problemas.
Por exemplo:
Uma struct com nome e RA.
Ele nao le o primeiro nome. E pede pra colocar o RA. Daih ele nao le o segundo (porque nao da tempo de escrever) e pede o segundo RA. Entao ele nao armazena nomes.
Tá. Esses daí já são só os problemas de string com struct.
Agora vem os problemas de string com alocaćão dinâmica.
Se eu fizer char *nome, eu tenho que fazer alocaćão?
Se tiver, como e faćo?
Só esses.
Com Alocaćão e Struct é o seguinte.
Eu faćo da seguinte forma:
#include <stdio.h>#include <stdlib.h>typedef struct { char nome[30]; int RA;} Aluno;void apresenta(int, Aluno );main (){ Aluno aluno; int i, quantidade, pos; system("clear"); printf("Digite a quantidade de alunos que deseja cadastrar: "); scanf("%d",&quantidade); aluno = (Aluno )malloc(quantidadesizeof(Aluno)); // qual é a certa pra utilizar? //aluno = (Aluno *)malloc(quantidade); // qual é a certa pra utilizar? system("clear"); for (i = 0; i < quantidade; i++) { printf("Digite o nome do aluno numero %d: ",i+1); scanf("%s", &aluno[i].nome); // só pega o primeiro nome. como fazer pra pegar espaços? //gets(aluno[i].nome); // tá pulando todos os nomes. printf("Digite o RA do aluno: "); scanf("%d", &aluno[i].RA); system("clear"); }
Meu código tá praticamente assim.
As dúvidas estão nos comentários.
Tem como alguém me ajudar?
Valeu, abrassss e desculpem-me os erros de portugues, é que eu to no slackware e esse coco ta desconfigurado.
Carregando comentários...