Aula 8 - O tipo cadeia de caracteres
  • Resumo
  • Exercício 1
  • Exercício 2
  • Soluções
Avalie esta aula

O tipo cadeia de caracteres

Já vimos que uma variável é composta por um nome, um tipo e um valor. Até o momento usamos apenas variáveis e expressões do tipo número. Mas linguagens de programação normalmente admitem outros tipos de variáveis e expressões.

Uma variável do tipo cadeia de caracteres é capaz de armazenar, como o nome diz, cadeias de caracteres.

Cadeias de caracteres são representadas em Javascript por uma sequência de caracteres entre aspas, como por exemplo "Esta é uma cadeia de caracteres".

Atribuição a variáveis de tipo cadeia de caracteres

O operador de atribuição '=' funciona da mesma forma que para variáveis do tipo número. A variável do lado esquerdo do operador armazena a cadeia de caracteres do lado direito do operador, como mostrado no exemplo abaixo:

var prenome, sobrenome, mensagem;

prenome = "Ricardo";
sobrenome = "Anido";
mensagem = "Por favor desligue o computador";

Operador concatenação

O operador '+' para o tipo cadeia de caracteres efetua a concatenação de duas cadeias (concatenar significa colocar uma cadeia de caracteres em seguida da outra). Veja o exemplo:

var prenome, sobrenome, nome;

prenome = "Ricardo";
sobrenome = "Anido";
nome = prenome + " " + sobrenome;

Ao final desse trecho a variável nome tem o valor "Ricardo Anido" (note o espaço entre nome e sobrenome).

Podemos ainda atribuir uma cadeia vazia a uma variável. A cadeia vazia é uma cadeia com zero caracteres e é designada por duas aspas consecutivas.

var nome;

nome = "";

Cadeias de caracteres e o comando printf

Para escrever cadeias de caracteres utilizamos o especificador de formato "%s" na cadeia formatadora do comando printf, como no exemplo abaixo.

var nome1, nome2;
nome1 = "Ricardo";
nome2 = "Cristina"

printf("Bom dia, %s e %s!", nome1, nome2);

Cadeias de caracteres e o comando scanf

Podemos ler caracteres cadeias de caracteres com o comando scanf, utilizando o especificador de formato "%s" na cadeia formatadora.

Suponha que a entrada contenha

Ricardo Anido 10 A
Então após o trecho abaixo ser executado
var prenome, sobrenome, nota, turma;

scanf("%s%s%d%s", "prenome", "sobrenome", "nota", "turma");

a variável prenome contém a cadeia de caracteres Ricardo, a variável sobrenome contém a cadeia de caracteres Anido, a variável nota contém o inteiro 10, e a variável turma contém a cadeia de caracteres A.

Note que o comando scanf não pode ser utilizado para ler cadeias de caracteres que contenham espaço em branco! O especificador %s lê caracteres da entrada até encontrar um delimitador que pode ser um espaço em branco ou um final de linha.

Teste de Equalidade

Podemos usar os operadores de comparação === e !== para testar a igualdade de cadeias de caracteres. No trecho de código abaixo, "Bom dia" é impresso apenas se a cadeia de caracteres lida da entrada é exatamente igual a "Ricardo".
var nome;

scanf("%s", "nome");
if (nome === "Ricardo")
   printf("Bom dia\n");

Comprimento de cadeias de caracteres

O comprimento de uma cadeia de caracteres é igual ao número de caracteres que a compõe. Podemos determinar o número de caracteres de uma cadeia de caracteres armazenada em uma variável utilizando a expressão

nome_de_variável.length

(ou seja, o nome da variável, seguido de '.' seguido da palavra length, que em inglês significa comprimento).

Veja um exemplo

var a;

a = "Cadeia";
printf("%d\n", a.length);

Nesse exemplo o valor 6 é impresso na saída, pois esse é o número de caracteres da cadeia armazenada na variável a.

 

 

Avalie este exercício

Mini-calculadora

Escreva programa que implemente uma calculadora simples para realizar as operações de adição, subtração, multiplicação e divisão entre dois operandos.

Entrada

A entrada consiste de apenas uma linha, contendo um número X com duas casas decimais, seguido de um espaço em branco, seguido de um caractere C, seguido de um espaço em branco, seguido de um número Y com duas casas decimais. O caractere C indica a operação a ser realizada entre os operandos X e Y, e pode ser '+', '-', '*' ou '/', indicando respectivamente as operações de adição, subtração, multiplicação e divisão.

Saída

Seu programa deve imprimir uma única linha contendo o resultado da operação indicada na entrada, com duas casas decimais de precisão.

Restrições

  • 0.00 ≤ X ≤ 1000.00
  • 0.00 < Y ≤ 1000.00
  • C é um dos caracteres '+', '-', '*' ou '/'

Exemplos

Entrada
2.00 + 3.50
Saída
5.50
	

Entrada
100.00 - 99.99
Saída
0.01

Entrada
10.00 / 3.00
Saída
3.33

 

 

Avalie este exercício

Desafio da maior palavra

Aldo e Beatriz gostam de jogos de palavras. Um dos jogos que eles acham mais divertido é encontrar palavras com muitas letras. Por exemplo, eles definem que o tema do desafio é nome de cidades, e os dois tentam encontrar a maior palavra que seja nome de uma cidade. Vence o desafio quem encontrar maior palavra, ou seja a palavra com o maior número de letras.

Eles pediram que você escreva um programa que, dadas as duas palavras que Aldo e Beatriz encontraram, determine qual dos dois é o vencedor.

Entrada

A entrada consiste de apenas uma linha, contendo duas palavras A e B, respectivamente as palavras encontradas por Aldo e por Bia. Uma palavra é uma sequência de letras e do símbolo '-'.

Saída

Seu programa deve imprimir uma única linha contendo um único caractere, que deve ser A se a maior palavra é a de Aldo, ou B se a maior palavra é a de Beatriz, ou o caractere * (asterisco) se as duas palavras têm o mesmo número de letras.

Restrições

  • As palavras têm entre 1 e 20 caracteres, entre letras não acentuadas.

Exemplos

Entrada
Pindamonhangaba SaoJoaoDaBoaVista
Saída
B
	

Entrada
TrepadeiraElefante CrisantemoVermelho
Saída
*

Entrada
Jabuticaba Uva
Saída
A

 

 

Avalie esta aula

Soluções para os exercícios

Nesta seção você encontra exemplos de soluções para os exercícios. Mas antes de ver a solução para um exercício tente resolvê-lo, criando a sua própria solução.

Solução do Exercício 1
Solução do Exercício 1
// Solução para o exercício 1 da Aula 8
// Mini-calculadora

var x,y,   // os operandos
    op,    // o operador
    res;   // o resultado

// lê a entrada
scanf("%f%s%f", "x", "op", "y");

// calcula o resultado
if (op === "+")
   res = x+y;
else if (op === "-")
   res = x-y;
else if (op === "*")
   res = x*y;
else
   res = x/y;

// imprime o resultado
printf("%.2f\n",res);

 

Solução do Exercício 2
Solução do Exercício 2
// Solução para o exercício 2 da Aula 8
// Desafio de maior palavra

var A,B,   // as cadeias de Aldo e Beatriz
    res;   // armazena o resultado

// lê a entrada
scanf("%s%s", "A", "B");

// calcula o resultado
if (A.length > B.length)
   res = "A";
else if (A.length < B.length)
   res = "B";
else
   res = "*";

// imprime o resultado
printf("%s\n",res);

 

 

 
Área de Trabalho
Entrada
Programa
Saída