Escolar Documentos
Profissional Documentos
Cultura Documentos
nome
RA
nome
CR
sexo
endereo
0,73
CR
sexo
0.73
endereo
rua
no. cidade
R. Dois 321 Rio Claro
1
Exemplo
struct cadastro {
char ra[6];
char nome[50];
float CR;
char sexo;
char endereco[20];
} aluno, ex_aluno;
endereo
R. Dois, 321. Rio Claro
O mesmo que
Typedef struct tipo_data{
int dia, mes, ano;
} DATA;
struct tipo_data{
int dia, mes, ano;
};
typedef struct tipo_data DATA; /* data o nome do tipo */
CR sexo
0,73
Exemplos.:
alunoCR = 0.75;
alunosexo = F;
alunora = 71234;
/* Para atribuio de string usar a funo
strcpy da biblioteca string.h */
strcpy(alunonome, Soraya);
OBS: Se o campo char for de mais de um elemento (vetor de strings), cada
um dos elementos pode ser acessado pelo seu ndice.
Exemplos:
printf(%c, aluno.nome[2]); /* exibe a letra r de Soraya */
aluno.nome[4] = i'; /* troca a letra y pela letra i em Soraya*/
5
DATA data_nasc;
DATA *d; /* d um ponteiro para uma varivel do tipo DATA */
Exemplo
#include <stdio.h>
int main () {
struct coordenadas {
int x, y, z;
} variavel1;
Vetores de Estruturas
Comando de definio
de uma estrutura deve
aparecer antes da
declarao de
variveis
Exemplo:
struct cadastro {
int ra;
char nome[50];
int num_curso, ano_ingresso;
float CR;
} aluno, alunos[500];
aluno valor para um aluno. Essa varivel pode ser usada para
guardar o valor de um dos registros
alunos valores para vrios alunos
ra
nome
65432
num curso
Ma r a
42
........
ano ingresso
2006
CR
0.75
0
1
return(0);
ndices
alunos
0 1 2 3 ndices do nome
Vetores de Estruturas
Exemplo
Dadas informaes sobre CDs de msica, tais como: nome do cantor(a) ou
grupo; ttulo do CD; gnero musical; ano de lanamento e dada uma letra
listar todas as informaes sobre o cantor cujo nome comea com a letra.
struct cadastro {
int ra;
char nome[50];
int num_curso, ano_ingresso;
float CR;
} aluno, alunos[500];
struct cadastro {
char cantor[30];
char titulo[20];
char genero[15];
int ano;
} CD[400];
Cantor
2) alunos[0]ra =73210;
M a
n o
titulo
e
gnero
ano
0
........
1
2
ndices
do CD
3
0 1
2 3
4 ndices do cantor
0 1 2 3 ndices do ttulo
10
Exemplo (cont)
Exemplo
Dadas informaes sobre CDs de msica, tais como: nome do cantor(a) ou
grupo; ttulo do CD; gnero musical; ano de lanamento e dada uma letra
listar todas as informaes sobre o cantor cujo nome comea com a letra.
#include <stdio.h>
#include <string.h>
#include<conio.h>
struct cadastro {
ndice do struct
char cantor[30];
CD
ndice do array
char titulo[20];
cantor
char genero[15];
int ano;
};
void Mostrar_informacoes(struct cadastro CD[], int N, char letra[]){
int j;
for (j=0; j<N; j++){
if (CD[j].cantor[0]== letra[0])
printf("%s %s %s %d \n", CD[j].cantor, CD[j].titulo, CD[j].genero, CD[j].ano);
}
}
11
int main() {
struct cadastro CD[100];
int i, N,opcao=1;
char letra[2];
printf("forneca a quantidade de CDs: "); scanf("%d", &N);
for(i=0; i<N ; i++) {
scanf("%s %s %s %d", CD[i].cantor, CD[i].titulo, CD[i].genero, &CD[i].ano);
}
printf("forneca uma letra:");
scanf("%s", letra);
Mostrar_informacoes(CD, N, letra);
printf("Fim de programa");
return 0;
}
12
Estruturas em estruturas
Para criar estruturas dentro de estruturas;
Estrutura interna precisa ser declarada antes:
struct dados_pessoais {
char nome [50];
char sexo;
int idade;
};
struct cadastro {
int ra ;
struct dados_pessoais pessoa;
float CR;
};
declarao da varivel
struct cadastro aluno;
acesso um campo da estrutura
aluno.ra=52410;
aluno.pessoa.sexo=F;
RA
nome
CR
sexo
0.73
endereo
rua
no. cidade
R. Dois 321 Rio Claro
struct Reg_endereo {
char rua[50];
int no;
char cidade;
};
struct cadastro_aluno {
int ra;
char nome[50];
float CR;
char sexo;
struct Reg_endereo endereo;
} aluno;
Exemplo de utilizao:
scanf(%d %f %s, &aluno.ra, &aluno.CR, aluno.endereco.cidade);
13
14