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.