Voltar Lista de Tópicos

Editar | Versões | Fórum de Discussão

Prazos para Envio


Caracteres e Strings

Strings

Até o momento aprendemos como declarar variáveis numéricas do tipo inteiro e fracionário (int e float). Neste ponto, vamos aprender como podemos armazenar valores literais, ou seja letras e frases. Chamamos as letras de caracteres e as palavras ou frases chamamos de Strings.

Na linguagem C, representamos os conjuntos de caracteres, também chamadas Strings, entre aspas duplas " ". Sem elas, o computador entende que você está querendo usar algum comando pré-definido, como o printf ou a o int, por exemplo. Portanto, muita atenção com as aspas quando você quiser definir textos. Veja os exemplos abaixo de uma escrita correta e uma incorreta.

 

  • printf("Olá Mundo"); Está OK, pois, o computador irá entender o texto "Olá Mundo" como um valor que será enviado para a tela.
     

  • printf(Olá Mundo); Está incorreto e gera erro, pois, como o texto não está entre aspas, o computador entende que você quer executar um comando chamado Olá Mundo, que é desconhecido para ele.

Armazenando Strings

Vamos iniciar com o esqueleto geral do programa:

Para armazenar Strings, vamos utilizar uma sintaxe um pouco diferente da declaração de números. Precisamos informar o tipo correto para caracteres char e informar a quantidade máxima de caracteres que pretendemos armazenar. Digite o código abaixo:

 

No código acima, declaramos uma variável do tipo String (conjunto de caracteres) com tamanho máximo 50! Vamos agora apresentar uma mensagem na tela.

Neste ponto, vamos combinar vários tipos de dados para praticar o que aprendemos até o momento.

Exercício Resolvido

Faça um programa que leia o primeiro nome, o último nome, a idade e a altura de um paciente de um hospital e imprima uma frase formatada com esses dados.

  • Passo 1: Monte o esqueleto

  • Passo 2: declare as variáveis primeiro nome, último nome, idade e altura com os tipos adequados para cada uma:

 

Repare que na solução acima o número máximo de caracteres (50) é uma constante, ou seja, ele é fixo. Portanto, vamos melhorar declarando ele como uma constante. Faça a alteração abaixo declarando uma constante MAXLEN com valor 50:

Acessando Caracteres Individualmente

Podemos acessar as posições dos caracteres individualmente, utilizando o colchetes e o índice do caractere.

Os códigos abaixo recuperam e imprimem os caracteres “T” e “g”. Faça os passos abaixo:

1 - Crie uma variável tipo char:

char letra;

 

2 - Acesse a posição 0 da variável primeiroNome e guarde a letra na variável criada:

 

letra = primeiroNome[0];

printf(“Inical do nome é: %c”, letra);

 

3 - Acesse a posição 5 e imprima a última letra do nome.

 

letra = primeiroNome[5];

printf(“A última letra é: %c”, letra)

Entrada de Dados para Strings

Para realizarmos a entrada de dados, vamos utilizar uma função um pouco diferente da tradicional scanf. Embora haja vários jeitos de fazer, vamos utilizar a mais simples, com a função fgets(). Caso você queira conhecer mais sobre leitura de strings, veja aqui.

Vamos fazer mais uma alteração para solicitar a digitação do primeiro e do último nome para o usuário.

 

Esse é o programa até o momento:

 

Agora, observe que o texto perdeu a formatação inicial, novas linhas estão sendo inseridas entre o primeiro e último nomes. Isso ocorre porque a função fgets realiza a leitura até encontrar um caractere de nova linha \n (ENTER). Para melhorar a saída, vamos remover esse caractere das nossas strings. Faça a alteração abaixo:


 

Esse é o código que desenvolvemos até o momento. Agora faça o exercício de fixação:



 


Questões

Questão 1

Comentários...

Não há comentários ainda... Seja o primeiro!