Pplware

Vamos Programar? – Introdução à Programação #21

Ler e imprimir strings.

O mundo está constantemente a evoluir: desde o mais pequeno inseto à espécie Humana. Dentro das palavras que mais ouvimos atualmente, incluímos “evolução”, “mudança”, “futuro”.

A tecnologia tem revolucionado o mundo das mais diversas formas: do mais simples aparelho para medir o tempo ao mais complexo acelerador de partículas. Se quer entrar no mundo da tecnologia e deixar a sua marca, pode começar aqui.



Depois de vos explicarmos o que são e como se utilizam strings na Linguagem C, é importante saber como as podemos ler e imprimir no ecrã. Antes de continuarmos, é importante referir que o “seletor” utilizado para strings é \%s.

Imprimir strings

A impressão de strings no ecrã pode ser feita de diversas formas. Iremos abordar duas delas: a função printf, já conhecida por todos vós, e a função puts.

Função printf

Esta função já é conhecida por todos vós e permite a impressão de diversos tipos de dados de forma bastante simples.

Sintaxe

Para a utilizar com strings basta escrever da seguinte forma:
printf(“Esta é uma string: %s”, nomeDaString);

Ou seja, é bastante útil quando necessitamos de imprimir uma string variável intercalada com algum outro texto.

Função puts

Por outro lado, temos a função puts que quer dizer put string. Esta função é bastante útil quando precisamos imprimir apenas uma sequência de caracteres variável.

Sintaxe

Ora veja a sintaxe:
puts(nomeDaString);

Leitura de Strings

Finalmente, abordaremos como se leem strings escritas pelo utilizador.

Função scanf

A utilização da função scanf para obter sequências textuais é semelhante à forma que utilizamos para ler números, tanto inteiros, como decimais. Porém, existe uma pequena diferença.

Sintaxe

Veja a sintaxe e tente descobrir a diferença que existe (além do uso de \%s):
scanf(“%s”, nomeDaString);

Como pode verificar, ao contrário do que acontecia com os restantes tipos de variáveis, neste não colocamos o operador & antes do nome da variável. Porquê? Porque as variáveis que contêm strings são arrays, logo o seu nome aponta para a primeira posição da memória ocupada por todo o array. Daí não ser necessário o uso do operador &.

Exemplo

No seguinte exemplo pode ver como utilizamos esta função para obter diversos dados do utilizador que depois são imprimidos recorrendo à função printf anteriormente abordada.
#include
#include

int main()
{
char nome[21],
apelido[21],
morada[51],
codigoPostal[11];

printf(“Por favor insira os seus dados conforme pedido:\n\n”);
printf(“Primeiro nome: “);
scanf(“%s”, nome);

printf(“Último nome: “);
scanf(“%s”, apelido);

printf(“Morada: “);
scanf(“%s”, morada);

/* Limpeza do buffer no Windows.
Usar “_fpurge(stdin)” em sistemas Unix */
fflush(stdin);

printf(“Código Postal: “);
scanf(“%s”, codigoPostal);

printf(“\nO seu Cartão de Identificação:\n”);
printf(“Nome: %s, %s\n”, apelido, nome);
printf(“Morada: %s\n”, morada);
printf(“Código Postal: %s\n”, codigoPostal);
return 0;

}

Função gets

Outra função que nos permite ler strings é a função gets, cujo nome advém de get string, ou seja, obter string. A utilização desta função é algo bastante simples.

Sintaxe

Ora veja a sintaxe:
gets(nomeDaString);

Onde “nomeDaString” se refere ao apontador que aponta para a primeira posição do array que contém a sequência de caracteres.

Exemplo

Aqui pode ver como fica o programa do exemplo anterior utilizando esta função.
#include
#include

int main()
{
char nome[21],
apelido[21],
morada[51],
codigoPostal[11];

printf(“Por favor insira os seus dados conforme pedido:\n\n”);
printf(“Primeiro nome: “);
gets(nome);

printf(“Último nome: “);
gets(apelido);

printf(“Morada: “);
gets(morada);

printf(“Código Postal: “);
gets(codigoPostal);

printf(“\nO seu Cartão de Identificação:\n”);
printf(“Nome: %s, %s\n”, apelido, nome);
printf(“Morada: %s\n”, morada);
printf(“Código Postal: %s\n”, codigoPostal);
return 0;
}

Exercícios

Esta semana temos poucos exercícios para vós. Aqui vai:

1 – Criar um pequeno programa que peça o primeiro nome ao utilizador e que o imprima de trás para a frente.

2 – Criar uma aplicação que peça os utilizadores o seu nome, o seu apelido, a sua data de nascimento, morada, código postal, número de telemóvel, telefone e que imprima uma espécie de BI.


Mais uma vez, gostávamos de saber a sua opinião. Caso tenha alguma dúvida, pode sempre utilizar os comentários para colocar a questão. Caso o faça,  pedimos que utilize a keyword [DUVIDA] no início do seu comentário.

Exit mobile version