cadeia de caracteres (string) INF Programação I Prof. Roberto Azevedo - PDF
Download "cadeia de caracteres (string) INF Programação I Prof. Roberto Azevedo"
João Henrique Beppler de Sequeira
1 cadeia de caracteres (string) INF Programação I Prof. Roberto Azevedo
2 cadeia de caracteres (string) tópicos caracteres cadeia de caracteres referência Capítulo 7 do livro
3 caracteres tipo char tamanho de char: = 1byte = 8bits = 256 valores distintos tabela de códigos define correspondência entre caracteres e códigos numéricos Exemplo: ASCII Alguns alfabetos precisam de maior representatividade (alfabeto chinês tem mais de 256 caracteres)
4 códigos ASCII de alguns caracteres (sp representa espaço) R i o d e J a n e i r o
5 códigos ASCII de alguns caracteres de controle
6 tabela ASCII
7 constante de caractere Caractere envolvido com aspas simples: a representa uma constante de caractere a resulta no valor numérico associado ao caractere a, conforme a tabela ASCII
8 exemplo 01 Considerando a representação das letras na tabela ASCII, como converter um caractere minúsculo no seu correspondente maiúsculo?
9 exemplo 01 conversão para maiúscula se for minúscula char maiuscula(char letra) { /* verifica se é letra minúscula */ if (letra >= 'a' && letra <= 'z') { letra = letra 'a' + 'A'; return letra; } }
10 como representar palavras?
11 cadeia de caracteres representação vetor do tipo char, terminado pelo caractere nulo ( \0 ) { R, i, o, \0 } é necessário reservar uma posição adicional no vetor para o caractere de fim de cadeia Rio de Janeiro tem 14 letras ou espaços: { R, i, o,, d, e,, J, a, n, e, i, r, o, \0 } tem 15 char funções para manipular cadeias de caracteres: recebem como parâmetro um vetor de char processam caractere por caractere até encontrar o caractere nulo, sinalizando o final da cadeia
12 cadeia de caracteres inicialização caracteres entre aspas duplas caractere nulo é representado implicitamente exemplo: variável cidade diensionada e incializada com 4 elementos
13 cadeia de caracteres exemplos s1 s2 s3 s4 armazena o caractere \0 (cadeia de caractere é dita vazia) (vetor s1 tem apenas um elemento) armazena cadeia de 14 caracteres (vetor s2 tem 15 elementos) Armazena cadeis com até 80 caracteres; dimensionada com 81 elementos, mas não inicializada armazena cadeias com até 80 caracteres; primeiros quatro elementos atribuídos na declaração são: { R, i, o, \0 }
14 cadeia de caracteres leitura do teclado scanf com o especificador de formato %c lê o valor de um único caractere fornecido via teclado não pula caracteres brancos: espaço ( ), tabulação \t para pular todos os caracteres brancos, basta colocar um espaço antes da entrada:
15 cadeia de caracteres leitura do teclado scanf com o especificador %s lê uma cadeia de caractere não brancos pula os eventuais caractere brancos antes da cadeia
16 como ler tudo até o final?
17 cadeia de caractere leia enquanto for... scanf com o especificador de formato %[...] %[...] lista entre os colchetes todos os caracteres aceitos na leitura %[aeiou] lê sequências de vogais leitura prossegue até encontrar um caractere que não seja uma vogal %[^...] lista entre os colchetes todos os caracteres NÃO aceitos na leitura %[^aeiou] lê sequências de caracteres que não são vogais leitura prossegue até encontrar um caractere que seja uma vogal
18 cadeia de caracteres leitura até o final como ler uma sequência de caracteres até que seja encontrado o caractere de mudança de linha ('\n')? captura linha fornecida pelo usuário até que ele tecle Enter inclusão do espaço no formato garante que eventuais caracteres brancos que precedam a cadeia de caracteres sejam descartados
19 (exemplos de) funções para manipular cadeia de caracteres
20 cadeia de caracteres exemplos de funções para manipular cadeia de caracteres: exibe comprimento copia concatena compara
21 cadeia de caracteres função exibe exibe uma cadeia de caracteres, caracter por caracter, com uma quebra de linha no final
22 cadeia de caracteres função comprimento retorna o comprimento de uma cadeia de caracteres de entrada s. Conta o número de caracteres até encontrar o caractere nulo \0 (o caractere nulo não é contado).
23 testando a função comprimento
24 exercício 01 Com base na função anterior, escreva uma função que receba uma cadeia de caracteres e exiba-a de trás para frente. Por exemplo: exibe_rev ( Rio de Janeiro ); -> exibe orienaj ed oir
25 cadeia de caracteres função copia copia os elementos de uma cadeia de origem (orig) para uma cadeia de destino (dest) dest deverá ter espaço suficiente
26 cadeia de caracteres função concatena copia os elementos de uma cadeia de origem (orig) para o final da cadeia de destino (dest) dest deverá ter espaço suficiente
27 cadeia de caracteres função compara compara, caractere por caractere, duas cadeias dadas Usa os códigos numéricos associados aos caracteres para determinar a ordem relativa valor de retorno da função -1 se a primeira cadeia preceder a segunda (e.g. ar vs. pé ) 1 se a segunda cadeia preceder a primeira (e.g. pé vs ar ) 0 se ambas as cadeias tiverem a mesma sequência
29 cadeia de caracteres biblioteca string.h strlen comprimento int strlen (char* s); strcpy copia char* strcpy (char* destino, char* origem); strcat concatena char* strcat (char* destino, char* origem); strcmp compara int strcmp (char* s, char *t);
30 constante cadeia de caracteres representada por uma sequência de caracteres delimitada por aspas duplas comporta-se como uma expressão constante, cuja avaliação resulta no ponteiro para onde a cadeia de caracteres está armazenada
31 constante cadeia de caracteres exemplo quando a cadeia Rio é encontrada: uma área de memória é alocada com a sequência { R, i, o, \0 } o ponteiro para o primeiro elemento desta sequência é devolvido função strcpy recebe dois ponteiros de cadeias: o primeiro aponta para o espaço associado à variável cidade o segundo aponta para a área onde está armazenada a cadeia constante
32 cadeia de caracteres exemplos: s1 é um vetor de char, inicializado com a cadeia Rio de Janeiro, seguida do caractere nulo. s1 ocupa 15 bytes de memória é válido escrever s1[0] = X, alterando o conteúdo da cadeia para Xio de Janeiro, pois s1 é um vetor. s2 é um ponteiro para char, inicializado com o endereço da área de memória onde a constante Rio de Janeiro está armazenada s2 ocupa 4 bytes (espaço de um ponteiro) não é válido escrever s2[0]='x', pois não é possível alterar um valor constante
Variáveis e constantes; Operadores e Tipos de Dados
Introdução à Programação (INF002) Variáveis e constantes; Operadores e Tipos de Dados 1º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) Variáveis e Constantes