algoritmos e técnicas de programação · instituto federal de educaÇÃo instituto federal de...
TRANSCRIPT
INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO
GRANDE DO NORTEGRANDE DO NORTE
Algoritmos e Técnicas de ProgramaçãoProgramação
ÉDocente: Éberton da Silva Marinhoe-mail: [email protected]@ifrn.edu.br
Curso de Tecnologia em Sistemas para Internet
25/09/2013
SUMÁRIO
Cadeias de caracteresA biblioteca string do C++
22
CONCEITO DE CADEIA
Uma cadeia é um tipo de dado composto, um array de caracteres (char), que termina com o caractere nulo ‘\0’caractere nulo \0
a A c a d e i a d e s t rArray de caracteres
a A c a d e i a d e s t r \0
Cadeia de caracteresCadeia de caracteres
INICIALIZAÇÃO DE CADEIAS
h [81] “ é d i ”char texto[81] = “Isto é uma cadeia”;
char textodemo[25] = “Isto é uma cadeia muito longa”;[ ] g ;
char cadeiateste[] = “Qual é o comprimento desta cadeia?”;cadeia?”;
LEITURA DE CADEIAS
i l d <i t >include <iostream>
void main(){(){char nome[30];
std::cin >> nome;std::cout << ‘\n’ << nome;
return 0;}
Mas e a cadeia “Maria das Graças” ? Como seria atribuída a variável nome?
LEITURA DE CADEIAS
O bj t i t l ét d it O objeto cin tem alguns métodos que permitem a manipulação de caracteres da entrada padrão
cin.getline(var, tam cadeia, separador)cin.getline(var, tam_cadeia, separador)Lê linha completa e atribui a variável varO tamanho da variável deve ser suficiente para armazenar a cadeia e o caractere nulo ‘\0’a cadeia e o caractere nulo \0Se o separador for utilizado, o objeto cin irá ler todos os caracteres até o separador, ou até o ‘\n’ aparecer, caso o separador seja omitidop j
Exemplo
char str[50];cin.getline(str, 50);g ( , );
LEITURA DE CADEIAS
i t ( )cin.get (var)Lê caractere por caractere e armazena na variável var
cin.putback()Restaura o último caractere lido por cin.get()
cin.ignore()Lê um ou mais caracteres do fluxo de entrada cin sem processar
cin.peek()Lê o caractere seguinte do fluxo de entrada cin sem li i t d fl d t deliminar o caractere do fluxo de entrada
A BIBLIOTECA STRING|STRING.H|CSTRING
A BIBLIOTECA STRING|STRING.H|CSTRING
ATRIBUIÇÃO DE CADEIAS
h * ( h * d i h * f )char * strcpy(char* destino, const char* fonte)
Copia a cadeia de caracteres da fonte para o destino
ATRIBUIÇÃO DE CADEIAS
h * ( h * d i h * fchar * strncpy(char* destino, const char* fonte, size_t num)
Copia os num primeiros caracteres da fonte para o destino
ExemploExemplo
char c1[] = “Cadeia C++”;
char c2[50];
strncpy(c2 c1 6);strncpy(c2, c1, 6);
std::cout << c2 << “\n”; // Irá imprimir ‘Cadeia’
COMPRIMENTO DE CADEIAS
i l ( h * d i )size_t strlen(const char* cadeia)
Retorna o tamanho da cadeia excluindo o caractere nulo ‘\0’
CONCATENAÇÃO DE CADEIAS
h * ( h * d i h * f )char* strcat(char* destino, const char* fonte)
Adiciona a cadeia fonte ao final da cadeia destino
Exemplo
char cadeia[81];
strcpy(cadeia, “Borland”);
strcat(cadeia, “ C++”);strcat(cadeia, C++ );
CONCATENAÇÃO DE CADEIAS
h * ( h * d i h * fchar* strncat(char* destino, const char* fonte, size_t num)
Adiciona à cadeia destino os num primeiros caracteres da cadeia fonte
E lExemplo
char cd1[50] = “Luiz Maranhão”;
char cd2[50] = “Olá eu sou”;
strncat(cd2, cd1, 5);
COMPARAÇÃO DE CADEIAS
i ( h * d1 h * d2)int strcmp(const char* cad1, const char* cad2)Compara as cadeias cd1 e cd2 e retorna:
< 0 se cad1 é menor que cad2q
= 0 se cad1 é igual a cad2
> 0 se cad1 é maior que cad2
int stricmp(const char* cad1, const char* cad2)Compara cad1 e cad2 sem distinguir maiúscula de minúscula
int strncmp(const char* cad1 const char* cad2 size tint strncmp(const char* cad1, const char* cad2, size_tnum)
Compara os num primeiros caracteres entre cad1 e cad2
INVERSÃO E CONVERSÃO DE CADEIAS
h * ( h * )char* strrev(char *s)Inverte a ordem dos caracteres de uma cadeia
char strupr(char *)Converte as letras minúsculas de uma cadeia em maiúsculas
char strlwr(char *)Converte as letras maiúsculas de uma cadeia em minúsculas
EXERCÍCIO
C i l i 1. Crie um programa que leia o nome, pre-nome e sobrenome de uma pessoa, e o armazene em uma variável nome completo. Em seguida exiba a va áve o e_co p e o. seg a e a o valor da nome_completo
2. Faça um programa que peça 10 cadeias de i f ã i i caracteres e informe quantos são iguais a
primeira3 Um palíndromo é uma palavra ou frase que 3. Um palíndromo é uma palavra ou frase que
poder ser lida tanto da direita para a esquerda como da esquerda para a direita. D id d Desconsiderando espaçamento e acentos gráficos. Faça um programa que verifique se uma cadeia é um palíndromouma cadeia é um palíndromo
CONVERSÃO DE CADEIAS EM NÚMEROS
i i( h * d)int atoi(const char *cad)Converte a cadeia cad em um número inteiro.
double atof(const char *cad)Converte a cadeia cad em um número double.
long atol(const char *cad)Converte a cadeia cad em um número long.
BUSCA DE CARACTERES E CADEIAS
char* strchr(char *s, char c)Permite buscar caracteres e padrões de caracteres em cadeiascaracteres em cadeiasLocaliza a primeira ocorrência de um caractere c em uma cadeia sExemplo
char c1[30] = “Aqui é uma string”;
char *c2;
c2 = strchr(c1, ‘s’);
BUSCA DE CARACTERES E CADEIAS
Char *strstr(const char *s1, const char *s1)
Localiza uma subcadeia em uma cadeia ouLocaliza uma subcadeia em uma cadeia, ou quebra uma cadeia em subcadeiasExemplop
char c1[30] = “Aqui é uma string”;
char c2[30] = “str”;
Char *c3;
c3 = strstr(c1, c2);
EXERCÍCIOS
DÚVIDAS
e-mail:[email protected]@ifrn.edu.br
Endereço eletrônico da disciplina: http://docente.ifrn.edu.br/ebertonmarinho
22222222