Eletrnica
Aula 07 - Strings
Prof.: Hansenclever de Frana Bassani (Hans)
h8@cin.ufpe.br
Site da disciplina: www.cin.ufpe.br/~h8/ce
CIn.ufpe.br
Roteiro
Hoje aprenderemos a manipular vetores de caracteres
(Strings) em C:
Caracteres em C
Entrada/Sada de caracteres
Funes que manipulam caracteres
Vetores de caracteres (Strings)
Inicializao
Strings constantes
Entrada/Sada de Strings
Funes de Manipulao de Strings
CIn.ufpe.br
Caracteres
Em C, o Ppo char:
usado para representar caracteres
Literais so dados
pode armazenar valores inteiros (em 1 byte), armazenados no prprio
representando assim, 256 valores disPntos cdigo do programa.
Um literal char escrito entre aspas simples: Podem ser de quaisquer
Ppos de dados bsicos. Ex.:
int: 10, 20, 30...
oat: 2.1, 5.4, 3.2...
char: a, A, \n, \0...
char[]: teste, casa...
CIn.ufpe.br
Caracteres
So representados internamente na memria do
computador por cdigos numricos;
Caracteres de controle
000 \0 (m de string)
Observe que as letras maisculas (65-90),
009 \t (tabulao)
minsculas (97-122) e os dgitos (48-57) esto
dispostos em sequncia! 010 \n (m de linha)
013 \r (retorno de linha)
CIn.ufpe.br
Caracteres
Pode-se Prar proveito da codicao sequencial da
tabela ASCII para escrever programas que idenPcam
o Ppo de caractere.
A funo abaixo verica se um dado caractere um
dgito entre 0 e 9 :
CIn.ufpe.br
Caracteres
Funo para converter uma letra em maiscula:
Testa se minscula
CIn.ufpe.br
Caracteres
Podem ser impressos de duas formas diferentes
usando o prinu (%d:como nmero, %c: como
caractere):
Sada: Sada:
97 a 97 a
CIn.ufpe.br
Caracteres
Leitura de caracteres com a funo scanf
Este espao diz ao scanf para
ou ignorar espaos, tabulaes,
ou outros caracteres de
controle que estejam no
buer do teclado
Existe ainda a funo getchar da biblioteca stdio.h que
permite a leitura de um caractere
CIn.ufpe.br
Caracteres
As funes scanf e getchar obrigam que a tecla enter
\n seja pressionada aps a entrada dos dados.
Existem funes para ler dados sem esperar pelo enter
em C para ambientes Windows:
Funo getche denida em conio.h:
CIn.ufpe.br
Strings: vetores de caracteres
Strings so representadas por um vetor do Ppo char e
terminadas pelo caractere nulo: \0 ;
O especicador de formato %s da funo prinu
permite imprimir uma cadeia de caracteres;
Muitas funes que manipulam strings o fazem
caractere a caractere, a parPr do endereo do
primeiro at que \0 seja encontrado.
O idenPcador
cidade (sem colchetes)
referencia o endereo do
primeiro caractere da
string.
CIn.ufpe.br
Inicializao de Strings
Inicializao do vetor de caracteres na declarao:
CIn.ufpe.br
Declarao de Strings
Inicializao do vetor de caracteres na declarao:
Representa um vetor
com 15 elementos
Representa um vetor de no
mximo, 80 caracteres vlidos
CIn.ufpe.br
Literais do Lpo String
Um literal (tambm chamado de constante) do Ppo
string deve ser declarado entre aspas duplas. Ex:
CIn.ufpe.br
Literais do Lpo String
A atribuio de literais para strings no permiPda:
A no ser na declarao:
CIn.ufpe.br
Leitura de Strings
Para a leitura de strings do teclado, pode ser uPlizada
a funo scanf com o especicador %s.
CIn.ufpe.br
Leitura de Strings
Para a leitura de strings do teclado, pode ser uPlizada
a funo scanf com o especicador %s.
CIn.ufpe.br
Leitura de Strings
Isso pode ser contornado na funo scanf com outros
especicadores:
CIn.ufpe.br
Leitura de Strings
Para evitar buer overow pode-se uPlizar um nmero aps %
para indicar o mximo de caracteres a serem lidos:
L no mximo 9 caracteres
digitados, pois deve deixar
espao para o \0.
%9[^\n] diz para a funo scanf parar apenas quando encontrar
um caractere \n (enter) ou quando o limite de 9 caracteres for
aPngido. O adiciona o \0 automaPcamente ao nal da string.
Outra opo uPlizar a funo fgets: Diferentemente do scanf, a
funo fgets inclui o
caractere \n (enter)
digitado pelo usurio ao
nal da string.
CIn.ufpe.br
Leitura de Strings
Em ambos os casos, os caracteres digitados pelo usurio porm
no lidos, cam no buer do teclado e sero entregues para a
prxima chamada de leitura.
UPlize ush(stdin) para descartar o que cou no buer do
teclado antes de fazer a prxima leitura. Para garanPr que os
novos dados digitados pelo usurio que sero lidos:
CIn.ufpe.br
Manipulando Strings
Exemplo de uma funo que imprime uma string, caractere a
caractere at encontrar o \0:
Funo anloga a:
CIn.ufpe.br
Manipulando Strings
Calcula o comprimento de uma string:
CIn.ufpe.br
Manipulando Strings
Copiar uma string para outra: origem -> desPno
Cada linha da
matriz guarda
uma string
CIn.ufpe.br
ALvidade 1
Faa um programa que solicita ao usurio digitar o nome e
endereo completo (armazenando em duas strings). Em
seguida o programa imprime na tela o que foi digitado.
CIn.ufpe.br
ALvidade 2
Faa um programa que solicita ao usurio digitar o nome e
sobrenome.
Em seguida o programa solicita o usurio digitar rua,
numero, bairro, cidade (capturando todos os dados como
string).
Finalmente o programa concatena o nome e sobrenome e
mostra na tela.
Depois o programa concatena os dados do endereo e
imprime o endereo de uma s vez.
CIn.ufpe.br
ALvidade 3
Faca um programa que solicita o usurio digitar uma mensagem
(string). Em seguida o programa converte todos os caracteres
da string para maisculo e depois imprime os resultados.
CIn.ufpe.br
ALvidade 4
Faca um programa que solicita o usurio digitar o nome de 5
pessoas, leia estes nomes em um vetor de strings e, em
seguida, imprima o primeiro e o ulPmo deles na ordem
alfabPca.
CIn.ufpe.br