Algoritmos e Linguagem de
Programação I
Roberto [email protected]
2014.1 – Módulo I
Aula 11 – Vetores de Caracteres (Strings)
Cadeias de caracteres
Uma cadeia de caracteres é uma sequência de caracteres
justapostos e são fundamentais no desenvolvimento de
programas computacionais.
Exemplos de cadeias de caracteres (representadas
internamente num programa):
•
•
•
•
Mensagem de e-mail;
Texto de um programa;
Nome e endereço em cadastro de clientes, alunos, etc...
Sequência genética. Um gene (ou o DNA de algum organismo) é
composto de sequências dos caracteres A, T, G e C (nucleotídeos)
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
2
Caracteres – Revisão
Uma variável usada para armazenar um caractere é
representada da seguinte maneira:
char letra = 'a';
Se em uma variável do tipo caracter podemos armazenar
somente um caractere, então para armazenar vários caracteres
(ex: “jose”, “carro”) é necessário utilizar as cadeias de
caracteres, representadas por vetores do tipo caracter.
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
3
Caracteres – Revisão
• Observe a declaração abaixo:
char cidade[18];
• A variável cidade é um vetor de caracteres
(cadeia de caracteres)
• A variável cidade pode armazenar qualquer
cadeia de até 17 caracteres
cidade
0
1
2
B
O
M
3
4
J
5
6
7
8
E
S
U
S
9
10
11
D
A
12
13
14
15
16
17
L
A
P
A
\0
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
4
Cadeias de Caracteres (Strings)
• Sintaxe para declaração de cadeia de
caracteres
char nome_da_variavel[qtde_caracteres];
• Exemplo:
char nome[30];
char profissao[20];
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
5
Cadeias de Caracteres (Strings)
Manipulação de cadeias de caracteres
• Vamos atribuir a variável nome, criada anteriormente, o
nome Jose.
nome = “Jose”;
• Observe a presença das aspas duplas na palavra Jose.
• Podemos ainda, obter um caracter qualquer da cadeia de
caracteres da seguinte maneira:
char letra = nome[1];
// letra receberá a letra da posição 1 da cadeia de caracteres, ou
seja, o .
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
6
Cadeias de Caracteres (Strings)
• Exemplo:
Observação: Neste caso,
não é necessário o &
antes da variável nome
em scanf.
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
7
Strings – observação:
• No exemplo anterior, a leitura será feita até
encontrar um caractere branco:
– espaço (' '), tabulação ( \t') ou nova linha ( \n').
• Assim, se digitarmos “Ana Claudia”, nome
conterá apenas “Ana”;
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
8
Caracteres em C
• Entrada/Saída de caracteres em C:
ch = getchar();
armazena um caractere digitado em ch até que ENTER seja
pressionado;
putchar(ch);
Imprime o caractere ch na tela do computador;
• Exemplo:
.
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
9
Strings
• Strings são tipos especiais de cadeias de caracter em C
e são terminadas, obrigatoriamente, pelo caractere
nulo: \0 (\zero). Portanto, deve-se reservar uma
posição para este caractere de fim de cadeia.
• Exemplos:
char cidade[4] = { 'R', 'i', 'o', ' ', '\0'};
char disc[40] = {'A','l','g', 'o', 'r', 'i',
't', 'm', 'o', '\ 0'};
• Também pode ser feito assim:
char cidade[4] = "Rio";
char disc[40] = "Algoritmo";
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
10
Strings
• Para ilustrar a declaração e a inicialização de strings, consideremos
as seguintes declarações:
char
char
char
char
s1[] = "" ; //2 aspas sem espaços entre elas
s2[] = "Rio de Janeiro";
s3[81];
s4[81] = "Rio";
• s1 armazena uma string vazia. Tem um único elemento: ‘\0’ ;
• s2 representa um vetor com 15 elementos (caracteres);
• s3 representa uma cadeia de caracteres com até 80 caracteres e
não é inicializada;
• s4 também é dimensionada para conter até 80 caracteres e é
inicializada com a cadeia “Rio”.
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
11
Strings – exemplo anterior:
• Exemplo:
Neste caso não será
armazenado nada
após espaços.
Observação: Neste caso,
não é necessário o &
antes da variável nome
em scanf.
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
12
Strings
• Leitura/Impressão de strings (gets/puts).
• Neste caso, se digitarmos Rio de Janeiro , s conterá “Rio de
Janeiro”;
• gets(s): lê a string s a partir do teclado;
• puts(s): imprime uma string na tela seguida de nova linha.
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
13
Strings – Exemplo:
• O programa a seguir imprime uma cadeia de
caracteres, caractere por caractere:
O for equivale a
printf("%s",s);
OU
puts(s);
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
14
Strings – Exemplo:
• O programa a seguir calcula e imprime o
comprimento (numero de caracteres) de uma
cadeia:
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
15
Exercício:
1. Fazer um programa para contar o número de
espaços em brancos de uma string.
2. Refaça o programa anterior criando uma
função que receberá como parâmetro a
string e retornará o número de espaços em
branco que a string contem.
Bom Jesus da Lapa – 2013.2 – ALP I – Professores Ana Cláudia, Jamille e Roberto
16
Download

aula11 - Vetores de Caracter - Algoritmos IF Baiano Campus Lapa