Struct
Marco Reis
Nov/2009
Struct
• Coleção de um ou mais valores que
podem ser agregados sob um nome
único.
• Organiza o código, uma vez que
possibilita ao programador trabalhar
com os dados agregados como se
fosse uma única variável.
struct pessoa
#include <stdio.h>;
#include <string.h>;
/**
* Estrutura utilizada para representar uma pessoa
* */
struct Pessoa {
char nome[100];
char endereco[100];
char telefone[50];
int idade;
};
Código
int main() {
//Declaracao das variaveis do tipo struct
struct Pessoa usuario;
//Para campos char[] (string), utilize a rotina strcpy
strcpy(usuario.nome, "Marco Antonio");
strcpy(usuario.endereco, "GUARA");
strcpy(usuario.telefone, "87879898");
//Para tipos numericos faca associacao direta
usuario.idade = 30;
//Para acessar os dados gravados, utilize a mesma estrutura
printf("Dados do Usuario\n");
printf("Nome: %s\n", usuario.nome);
printf("Endereco: %s\n", usuario.endereco);
printf("Telefone: %s\n", usuario.telefone);
printf("Idade: %i\n", usuario.idade);
return 0;
}
Atividade
•
Recupere as informações do usuário
através do scanf ou gets.
struct Automovel
/**
* Estrutura para armazenar os dados de um automovel
*/
struct Automovel {
char marca[100];
char modelo[100];
float preco;
int potencia;
};
Código
//
struct Automovel carro;
strcpy(carro.marca, "Volkswagen");
strcpy(carro.modelo, "Golf");
carro.preco = 49900.99;
carro.potencia = 117;
//
printf("\nDados do Automovel\n");
printf("Marca: %s\n", carro.marca);
printf("Modelo: %s\n", carro.modelo);
printf("Preco: %f\n", carro.preco);
printf("Potencia: %ihp\n\n", carro.potencia);
Atividade
•
•
Crie uma struct para armazenar os
dados dos alimentos (quais as suas
características).
Informe dados e imprima um teste
como os do exemplo.
Vetores
/**
* Para trabalhar com vetores, utiliza-se o mesmo principio
* Atencao especial para o indice de cada elemento
*/
struct Pessoa turma[5];
int i;
//Armazene os valores
for (i = 0; i < 5; i++) {
char nome[100];
printf("Informe o nome da %ia pessoa:\n", i + 1);
scanf("%s", nome);
strcpy(turma[i].nome, nome);
}
//Recupere seus dados
printf("Dados da Turma\n");
for (i = 0; i < 5; i++) {
printf("%i - %s\n", turma[i].nome);
Atividade
•
•
•
Complete o programa e solicite ao
usuário todos os demais dados da
struct Pessoa.
Depois de inserir cada uma das
pessoas, pergunte se deseja continuar
inserindo ou se deseja encerrar e
mostrar os dados já cadastrados.
Crie um vetor para armazenar uma
refeição completa: entrada, prato
principal, bebida e sobremesa.
Download

Estruturas