Estruturas em C: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 64: Linha 64:
</syntaxhighlight>
</syntaxhighlight>


;Exercício:
===Exercícios===
#Construa um programa para receber pelo teclado o nome, data de nascimento, telefone e email de uma pessoa e armazenar os valores em uma variável tipo estrutura, chamada ficha_pessoal. Em seguida imprimir as informações da pessoa.
#Construa um programa para receber pelo teclado o nome, data de nascimento, telefone e email de uma pessoa e armazenar os valores em uma variável tipo estrutura, chamada ficha_pessoal. Em seguida imprimir as informações da pessoa.
#Modifique o programa anterior, fazendo com que o campo telefone da estrutura ficha_pessoal seja também uma estrutura, chamada telefones, com campos para telefones residencial, comercial e celular.
#Modifique o programa anterior, fazendo com que o campo telefone da estrutura ficha_pessoal seja também uma estrutura, chamada telefones, com campos para telefones residencial, comercial e celular.
#Modifique o programa, atribuindo a definição da estrutura ficha_pessoal a uma variável tipo vetor, de forma a receber dados de 10 pessoas diferentes.
#Modifique o programa, atribuindo a definição da estrutura ficha_pessoal a uma variável tipo vetor, de forma a receber dados de 10 pessoas diferentes.
<ref name="KERNIGHAN">KERNIGHAN, B.W.; RITCHIE, D.M. '''The C Programming Language''', Prentice Hall, 2<sup>o</sup> ed. 1978.</ref>


==Referências==
==Referências==

Edição das 21h31min de 11 de setembro de 2014

Estruturas em C

Uma estrutura em C é um uma estrutura de dados em forma de um registro com vários campos.

Criação de uma estrutura
Para a criação de uma estrutura utiliza-se o comando struct e atribui-se um nome para a estrutura, o qual é depois utilizado para declarar variáveis deste tipo.

Exemplo[1]:

 struct nametype{
   char first[10] ;
   char midinit ;
   char last[20] ;
 };

 struct nametyte name;
A primeira declaração cria uma estrutura de nome nametype com três campos, na qual o primeiro (first) e o terceiro (last) são strings e o segundo (midinit) é um caracter.
A segunda declaração cria a variável name do tipo da estrutura nametype.

Uma alternativa ao uso de um nome de estrutura é utilizar a definição de tipo com o comando typedef do C e depois utilizar o novo tipo criado para declarar varáveis do tipo da estrutura criada. Por exemplo:

 typedef struct {
   char first[10] ;
   char midinit ;
   char last[20] ;
 } NAMETYPE;

 NAMETYTE name;
Observe que os nomes de estruturas são convencionalmente escritos com letras minúsculas, mas os especificadores de typedef são escritos com letras maiúsculas ao apresentar programas em C.
Acesso aos campos da estrutura
Cada campo da estrutura pode ser acessado especificando o nome da variável e no nome do campo correspondente.

Por exemplo:

 printf("%s", name.first);
pode ser usada para imprimir o primeiro nome na estrutura name, e a instrução:
 name.midinit = 'M';
atribui valor ao segundo campo da estrutura name.
Programa exemplo
 #include <stdio.h>
 #include <string.h>
 struct nametype{
   char first [10]; /*Tipo string*/
   char midinit;    /*Tipo char*/
   char last [10];  /*Tipo string*/
 };
 void main ()
 {
   struct nametype name;
   strcpy (name.first,"João");
   name.midinit = 'C';
   strcpy (name.last,"Silva");
   printf("Nome completo: %s %c. %s\n", name.first, name.midinit, name.last);
 }

Exercícios

  1. Construa um programa para receber pelo teclado o nome, data de nascimento, telefone e email de uma pessoa e armazenar os valores em uma variável tipo estrutura, chamada ficha_pessoal. Em seguida imprimir as informações da pessoa.
  2. Modifique o programa anterior, fazendo com que o campo telefone da estrutura ficha_pessoal seja também uma estrutura, chamada telefones, com campos para telefones residencial, comercial e celular.
  3. Modifique o programa, atribuindo a definição da estrutura ficha_pessoal a uma variável tipo vetor, de forma a receber dados de 10 pessoas diferentes.

Referências

  1. TENENBAUM, A. A.; LANGSAM, Y.; AUGENSTEIN, M.J. Estruturas de dados usando C, São Paulo: Makron Books, 1995.

--Evandro.cantu (discussão) 10h29min de 12 de junho de 2014 (BRT)