int numbers[50];Nota: Em C os arrays começam sempre no índice 0 e vão até ao valor da dimensão menos 1. Na definição de cima os índices válidos do array numbers vão desde 0 até 49.
O acesso aos elementos individuais do array faz-se utilizando também parêntesis rectos. Exemplos:
terceiro_valor = numbers[2];Os arrays multidimensionais declaram-se, indicando as várias dimensões umas a seguir às outras, da mesma forma que a primeira dimensão. Exemplo, para duas dimensões:
numbers[5] = 100;
float matriz[50][50];Para maiores dimensões basta acrescentar à declaração mais elementos [...]:
double big_array[10][10][22]...[8];Os acessos aos elementos individuais faz-se da mesma forma:
valor = matriz[10][4];Nota: Em C os arrays são armazenados na memória por forma a que dois elementos consecutivos (na memória) correspondem prioritariamente a uma variação do último índice. Para arrays bidimensionais, isso corresponde a um armazenamento linha a linha.
matriz[0][1] = 100;
Uma declaração de uma string capaz de conter 50 caracteres:
char nome[51];Como o C não manuseia strings directamente todas as seguintes instruções são ilegais:
char nome[50], apelido[50], nome_completo[100];No entanto a seguinte declaração com inicialização é válida:nome = "Arnold"; /* Ilegal */
apelido = "Schwarznegger"; /* Ilegal */
nome_completo = "Mr. " + nome + ' ' + apelido; /* Ilegal */
char nome[50] = "Dave";Para permitir a existência de strings de tamanho variável, quer a inicialização anterior, quer todas as funções de strings da biblioteca standard acrescentam um carácter final a todos os strings. Esse carácter (que marca o fim de um string) tem o valor 0 (código 0, não o carácter '0'). Se quisermos representar esse carácter podemos escrever '\0'.
A inicialização anterior produz a seguinte imagem na memória:
Para imprimir um string no vídeo pode usar-se a função printf(), com um especificador, no 1º parâmetro igual a %s, no local da variável do tipo string (char []):
printf("%s", nome);
2. Escreva um programa que leia um texto do vídeo com múltiplas linhas e carácter a carácter. O fim do texto é marcado com EOF (end of file) que se obtém com Ctrl-D no Unix e Ctrl-Z no DOS. As linhas de texto deverão depois ser escritas no écran de trás para a frente (em reverso).
3. Escreva um programa que leia um texto (múltiplas linhas) até
à ocorrência de EOF. O programa deverá fazer uma estatística
do comprimento das palavras lidas, i. e., deverá indicar o número
de palavras com 1 letra, o número de palavras com 2 letras, ...,
etc.