Mudanças entre as edições de "Estruturas em C"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 35: Linha 35:
 
:atribui valor ao segundo campo da estrutura name.
 
: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);
 +
}
  
  

Edição das 20h41min de 8 de junho 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 typedef de C. Por exemplo:

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

Depois pode-se utilizar o novo tipo criado para declarar varáveis do tipo da estrutura criada:

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);
}



Referências

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

Autoria
Evandro Cantú - IFPR, Câmpus Foz do Iguaçu