Cadeia de caracteres (strings)

Documentos relacionados
Cadeia de caracteres (strings)

Estruturas II UFOP 1/35

LEI Nº De: 04 de julho de A CÂMARA MUNICIPAL DE UMUARAMA, ESTADO DO PARANÁ, aprovou, e eu, Prefeito Municipal, sanciono a seguinte Lei:

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Figura I Experiência prévia em Teatro dos alunos do 1º período do Curso de Graduação em Teatro da EBA/UFMG no 1º semestre de 2009.

TABELA DE CONTRIBUIÇÃO DO SEGURADO EMPREGADO, DOMÉSTICO E AVULSO

Linguagem C: Introdução

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Programação: Vetores

Controle de Fluxo Comandos de decisão multipla

Variáveis, Tipos de Dados e Operadores

Introdução à Computação MAC0110

Paradigmas de Linguagens

Strings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos.

Introdução à Ciência da Computação

PYTHON - Strings. Introdução à Programação SI1

Linguagens de Programação. Parte IV. Relembrando da Última Aula... Ponteiros. Declaração e Inicialização de Variáveis Ponteiros

Linguagem C Princípios Básicos (parte 1)

Métodos Computacionais. Strings (Vetor de Caracteres)

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

Estruturas Homogêneas II (Matrizes)

Anexo 1 Plan de clase (10º B/F/G; Describir la vivienda)

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz

Programação Básica. Estrutura de um algoritmo

ITENS FUNDAMENTAIS Programando em C++

Manipulação de Strings

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

LÓGICA DE PROGRAMAÇÃO

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Controle de Fluxo Comandos de decisão

Programação Orientada a Objetos para Redes de Computadores

Curso de C para Engenharias

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

Capítulo I Introdução e objectivo Introdução Objectivos do estudo Motivação para o estudo 2. Capítulo II Revisão da Literatura 4

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença

CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho

Fundamentos de Programação. Introdução

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza

Lição 4 Fundamentos da programação

cadeia de caracteres (string) INF Programação I Prof. Roberto Azevedo

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

Algoritmo e Programação Matemática

Funções de Entrada e Saída

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

ALGORITMOS 3ª Aula. 3. Introdução Tipos de dados, variáveis e operadores Tipos de dados

A Linguagem C. A forma de um programa em C

Variável. Expressões. Atribuição. Tipos básicos Declaração. Aritméticas Lógicas. Professor Leandro Augusto Frata Fernandes

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Variáveis primitivas e Controle de fluxo

Coordenadoria de Acórdãos e Resoluções

RESOLUÇÃO. Gestão de Negócios; Gestão Estratégica de Pessoas, no câmpus de Itatiba, criados pela Resolução CONSEPE 21-A/2003, de 26/6/2003;

Ambiente de desenvolvimento

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN

CARTA-CIRCULAR Nº 3089

Referências. Linguagem C. Tipos de variáveis em XC8. Tipos de variáveis. Tipos de variáveis em XC 8 Exemplo. Radicais numéricos em C

DAS COORDENAÇÃO DE EIXO_TECNOLÓGICO

Curso básico de JavaScript Aula 2

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Vetores e Matrizes. Conceito. Conceito. Conceito. Conceito. Conceito. Variáveis Compostas Homogêneas. Matriz

O Colégio Militar de Curitiba, em relação ao regulamento Nº 001/13 resolve, complementar os seguintes itens :

Estrutura de Programas e Tipos de Dados Simples

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Fundamentos de Programação

Arrays em Java. Prof. Renato Pimentel. GGI030 Programação Orientada a Objetos. Universidade Federal de Uberlândia Faculdade de Computação

Métodos Computacionais. Funções, Escopo de Variáveis e Ponteiros

Algoritmos: Conceitos Fundamentais. Slides de autoria de Rosely Sanches e Simone Senger de Souza

Vetor de tamanho variável

Disciplina de Algoritmos e Programação

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio)

Disciplina de Algoritmos e Programação

Exercícios: Arquivos

Métodos Computacionais

Organização e Arquitetura de Computadores I

CURSO DE FISIOTERAPIA REGULAMENTO DAS ATIVIDADES COMPLEMENTARES

Array em Java. Figura 1 - Exemplo de um array de inteiros

Elementos de programação em C

HARDWARE SISTEMA NUMÉRICO E CODIFICAÇÃO. Wagner de Oliveira

Estruturas de Dados Aula 6: Cadeias de 28/03/2010

Perfil e Jornada de Trabalho da Equipe de Profissionais da Estação Juventude Local

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Anexo VIII - Diversos

Transcrição:

BCC 201 - Introdução à Programação I Cadeia de caracteres (strings) Guillermo Cámara-Chávez UFOP 1/83

Caracter I Um caracter é considerado um tipo de dado primitivo Um tipo de dado é primitivo se o computador possui instruções em linguagem de máquina que permite a manipulação deste tipo. Desde que uma cadeia é uma sequência ordenada de caracteres, o caracter é a entidade fundamental de manipulação de uma cadeia. 2/83

Caracter II Um caracter pertence a um conjunto finito de caracteres: um alfabeto Um exemplo de alfabeto é o conjunto de letras da ĺıngua portuguesa Outro alfabeto comum é o conjunto de dígitos decimais Ao longo dos anos, vários alfabetos foram desenvolvidos para serem utilizados em computadores 3/83

Caracter III Caracteres literais são representados por aspas simples, como em A e a Variáveis do tipo char podem receber valores literais do tipo caracter ou também valores inteiros (que nesse caso representam o caracter correspondente, conforme o sistema de codificação adotado) Variáveis do tipo char podem também ter o seu valor comparado com inteiros 4/83

Caracter IV Entre os vários métodos de codificação, os mais populares são código ASCII (7 bits) - American Standard Code for Information Interchange código EBCDIC (8 bits) - Extended Binary Coded Decimal Interchange Code código UNICODE (8 bits) código UTF-8, nos dias de hoje substitui o sistema ASCII 5/83

Caracter V Tabela ASCII 6/83

Caracter VI Os dígitos são codificados sequencialmente na tabela ASCII: 0 (48), 1 (49), etc. O código a seguir verifica se um caracter é um digito (de 0 a 9) i n t d i g i t o ( c h a r c ) { i f ( c >= 0 && c <= 9 ) r e t u r n 1 ; e l s e r e t u r n 0 ; } 7/83

Caracter VII Para converter de letra minúscula para maiúscula (usando codificação sequencial) c h a r m a i u s c u l a ( c h a r c ) { i f ( c >= a && c <= z ) { c = c a + A ; } } 8/83

Caracter VIII #include <cctype> Função Descrição isalnum(c) true se c é uma letra ou dígito isalpha(c) true se c é uma letra isblank(c) true se c é espaço ou tabulação isdigit(c) true se c é um digito islower(c) true se c é uma letra minúscula isupper(c) true se c é uma letra maiúscula ispunct(c) true se c é um símbolo de puntação tolower(c) retorna a versão minúscula do caracter c toupper(c) retorna a versão maiúscula do caracter c 9/83

Cadeia de caracteres I Definição: são sequências de letras, números ou símbolos onde o último caracter é o caracter nulo (\0) Na linguagem C utilizamos vetores de tipo char para armazenar cadeias de caracteres. 10/83

Cadeia de caracteres II Por exemplo, para declarar um espaço de memória que contenha 20 caracteres fazemos: c h a r nome [ 2 0 ] ; cout << nome ; A função cin, quando utilizada com strings lê todos os caracteres até encontrar um caracter igual a espaço ou fim de linha 11/83

Cadeia de caracteres III Para manipular este tipo de string é preciso ter certo cuidado (se acessamos um endereço fora do vetor, invadiremos outras áreas da memória). Pergunta: Qual o tamanho do menor vetor que devemos declarar para armazenar uma cadeia de caracteres com 10 letras? 12/83

Cadeia de caracteres IV Escreva um program que lê uma palavra da entrada e imprime o número de caracteres desta palavra 13/83

Cadeia de caracteres V i n t main ( ) { c h a r v e t o r [ 1 0 0 ] ; i n t i, n ; cout << "Entre com a palavra : " ; c i n >> v e t o r ; i = 0 ; n = 0 ; w h i l e ( v e t o r [ i ++]!= \0 ) n++; c o u t << "O numero de caracteres eh " << n ; r e t u r n 0 ; } 14/83

Cadeia de caracteres em C++ I Para utilizar strings em C++ é necessário incluir o arquivo header #include <string> Strings são declaradas da mesma forma que os tipos de dados primitivos, tais como inteiros ou reais, utilizando o tipo string // d e c l a r a c a o de v a r i a v e i s t i p o s t r i n g s t r i n g s1, s2, s3 ; 15/83

Cadeia de caracteres em C++ II Inicialização e atribuição de strings #i n c l u d e <i o s t r e a m > #i n c l u d e <s t r i n g > // n e c e s s a r i o para u s a r s t r i n g s u s i n g namespace s t d ; i n t main ( ) { s t r i n g nome1 ( "Fulano " ) ; // i n i c i a l i z a nome1 s t r i n g nome2 = " Beltrano " ; // i n i c i a l i z a nome1 // nao i n i c i a l i z a nome3 e nome4 s t r i n g nome3, nome4 ; } s t r i n g nome5 ( 1 0, c ) ; // s4 eh c c c c c c c c c c nome3 = " Ciclano " ; nome4 = nome3 ;... 16/83

Cadeia de caracteres em C++ III Acesso a caracteres individuais de uma string Assimo como em C, C++ define o operador [] para permitir o acesso a caracteres individuais Além disso, C++ também define o operado at que não permite o acesso a posições inválidas 17/83

Cadeia de caracteres em C++ IV i n t main ( ) { s t r i n g nome1 ( "Fulano " ) ; s t r i n g nome2 ( " Beltrano " ) ; // Troca o p r i m e i r o c a r a c t e r de nome1 nome1 [ 0 ] = nome2 [ 0 ] ; // usando o i n d i c e cout << "Decimo caracter : " << nome2 [ 1 0 ] ; // ERRO! Nao e x i s t e o c a r a c t e r 10 } // usando o p e r a d o r at cout << "Decimo caracter : " << nome2. at ( 1 0 ) ; // ERRO! mas a b o r t a o programa 18/83

Cadeia de caracteres em C++ V Comparação de strings em C++, pode-se usar os operadores ==,! =, >, >= ou < para fazer comparações alfabéticas entre duas strings Também pode-se empregar a função compare que retorna = 0: ambos strings são iguais > 0: o primeiro caracter que não casa tem um valor superior na primeira cadeia < 0: o primeiro caracter que não casa tem um valor inferior na primeira cadeia 19/83

Cadeia de caracteres em C++ VI Manipulando o tamanho de uma string As strings em C++ têm tamanho variável, i.e., reserva uma certa quantidade de memoria (capacidade), mas não necessariamente utiliza toda essa memória Caso a string cresça mais do que sua capacidade, mais memória é reservada 20/83

Cadeia de caracteres em C++ VII A seguir apresenta-se as principais funções: size() ou length(): retorna o tamanho da string capacity(): retorno a capacidade corrente da string, ou seja, quantos elementos ela poderá conter antes de precisar mais memoria max_size(): retorna o tamanho máximo possível de uma string, geralmente depende da máquina e do compilador 21/83

Cadeia de caracteres em C++ VIII i n t main ( ) { s t r i n g s1, s2 ( "valor inicial " ), s3 [ 1 0 ] ; cout << " tamanho de s2: " << s2. s i z e ( ) ; r e t u r n 0 ; } 22/83

Cadeia de caracteres em C++ IX Concatenação de strings, é utilizado o operador + para juntar cadeias s t r i n g s1 = " Ciencia ", s2 = "da ", s3, s4 ; s3 = " Computacao " ; s4 = s1 + s2 + s3 ; cout << s4 ; Mostra na tela: Ciencia da Computacao 23/83

Cadeia de caracteres em C++ X Quando concatenamos variáveis tipo string e cadeias ou caracteres, pelo menos um operando para cada operador + deve ser de tipo string s t r i n g s1 = "ola" ; // a t r i b u i ç ã o // ok : c o n c a t e n a ç ã o de um t i p o s t r i n g e um l i t e r a l s t r i n g s4 = s1 + ", " ; // e r r o : nao e x i s t e um operando t i p o s t r i n g s t r i n g s5 = "hello" + ", " ; // ok : cada + tem um operando t i p o s t r i n g s t r i n g s6 = s1 + ", " + "world" ; // e r r o : nao pode c o n c a t e n a r c a d e i a s s t r i n g s7 = "hello" + ", " + s2 ; 24/83

Cadeia de caracteres em C++ XI Outras funções Comandos Descrição clear Limpa o texto insert Insere mais texto erase Apaga caracteres de texto replace Substitui parte do texto swap Troca conteúdo entre textos find Procura um texto dentro de outro empty Retorna true se a cadeia está vazia 25/83

Cadeia de caracteres em C++ XII #i n c l u d e <s t r i n g > i n t main ( ) { s t r i n g cad ( "Uva, maca, laranja " ) ; cout << cad << e n d l ; cout << " Tamanho : " << cad. s i z e ( ) << e n d l ; // Tamanho : 18 cad. c l e a r ( ) ; cout << " Tamanho : " << cad. s i z e ( ) << e n d l ; // Tamanho : 0 r e t u r n 0 ; } 26/83

Cadeia de caracteres em C++ XIII string& insert (size_t pos, const string& str); pos : posição a partir de onde será inserida a nova cadeia str : cadeia a ser inserida string& erase (size_t pos = 0, size_t len = npos); pos : posição do primeiro caracter que será apagado len : número de caracteres que serão apagados 27/83

Cadeia de caracteres em C++ XIV #i n c l u d e <s t r i n g > i n t main ( ) { s t r i n g cad ( "Uva, maca, laranja " ) ; cout << cad << e n d l ; // Uva, maca, l a r a n j a cad. i n s e r t ( 5, "banana, " ) ; cout << cad << e n d l ; // Uva, banana, maca, l a r a n j a cad. e r a s e ( 5, 8 ) ; cout << cad << e n d l ; // Uva, maca, l a r a n j a r e t u r n 0 ; } 28/83

Cadeia de caracteres em C++ XV string& replace(size_t pos, size_t len, const string& str); pos : posição do primeiro caracter que será substituído len : número de caracteres que serão substituídas str : cadeia que será copiada 29/83

Cadeia de caracteres em C++ XVI #i n c l u d e <s t r i n g > i n t main ( ) { s t r i n g cad ( "Uva, banana, laranja " ) ; cout << cad << e n d l ; // Uva, banana, l a r a n j a cad. r e p l a c e ( 5, 8, "abacaxi, pera, " ) ; // Uva, a b a c a x i, pera, l a r a n j a cout << cad << e n d l ; r e t u r n 0 ; } 30/83

Cadeia de caracteres em C++ XVII void swap (string& str) i n t main ( ) { s t r i n g suco ( "Uva, banana, laranja " ) ; s t r i n g s a n d u i c h e ( "pao, presunto, queijo" ) ; cout << "Antes da troca " << suco << e n d l ; cout << "Antes da troca " << s a n d u i c h e << e n d l ; // Antes da t r o c a Uva, banana, l a r a n j a // Antes da t r o c a pao, p r e s u n t o, q u e i j o suco. swap ( s a n d u i c h e ) ; cout << "Depois da troca " << suco << e n d l ; cout << "Depois da troca " << s a n d u i c h e << e n d l ; // Depois da t r o c a pao, p r e s u n t o, q u e i j o // Depois da t r o c a Uva, banana, l a r a n j a } r e t u r n 0 ; 31/83

Cadeia de caracteres em C++ XVIII size_t find (const string& str, size_t pos = 0) str : cadeia que será procurada pos : a partir de onde será procurada a cadeia 32/83

Cadeia de caracteres em C++ XIX i n t main ( ) { s t r i n g suco ( "Uva, banana, laranja, banana" ) ; i n t pos = suco. f i n d ( "banana " ) ; c o u t << " Esta na posicao " << pos ; // Esta na p o s i c a o 5 pos = suco. f i n d ( "banana ", 6 ) ; cout << "Esta na posicao " << pos << e n d l ; // Esta na p o s i c a o 23 } r e t u r n 0 ; 33/83

Exercicios I Implementar uma função que crie uma cópia de um string 34/83

Exercicios II s t r i n g Copia ( s t r i n g cad ) ; i n t main ( ) { s t r i n g cad, cadcopia ; cout << " Inserir uma cadeia \n" ; c i n >> cad ; cadcopia = Copia ( cadcopia ) ; cout << "cadeia : << cad << " Copia : " << cadcopia ; return 0; } 35/83

Exercicios III s t r i n g Copia ( s t r i n g cad ) { s t r i n g ncad ; } f o r ( i n t i = 0 ; i < cad. s i z e ( ) ; i ++) { ncad += cad [ i ] ; } r e t u r n ncad ; 36/83

Exercicios IV Criar a função que receba um string e que gere outro string com a ordem inversa dos caracteres. Ex alem deve ser gerado mela. 37/83

Exercicios V #i n c l u d e <s t r i n g. h> s t r i n g I n v e r t e ( s t r i n g ) ; i n t main ( ) { s t r i n g cad1, cad2 cout << " Inserir uma cadeia " ; c i n >> cad1 ; cad2 = I n v e r t e ( cad1 ) ; cout << " cadeia1 : " << cad1 << " cadeia2 : " << cad2 ; r e t u r n 0 ; } 38/83

Exercicios VI s t r i n g I n v e r t e ( s t r i n g cad ) { i n t n = cad. s i z e ( ), i, j ; s t r i n g c a d i n v ( n, ) ; f o r ( i = 0, j = n 1; i < n ; i ++; j ) c a d i n v [ i ] = cad [ j ] ; r e t u r n c a d i n v ; } 39/83

Exercicios VII outra forma s t r i n g I n v e r t e ( s t r i n g cad ) { s t r i n g c a d i n v ; f o r ( i n t i = cad. s i z e () 1; i >= 0 ; i ) c a d i n v += cad [ i ] ; r e t u r n c a d i n v ; } 40/83

Exercicios VIII Criar uma função que elimine os espaços em branco de uma cadeia de caracteres 41/83

Exercicios IX s t r i n g E l i m i n a ( s t r i n g cad ) ; i n t main ( ) { s t r i n g cad, cadsem ; cout << " Inserir uma cadeia \n" ; g e t l i n e ( cin, cad ) ; cadsem = E l i m i n a ( cad ) ; cout << "cadeia : " << cadsem ; r e t u r n 0 ; } 42/83

Exercicios X s t r i n g E l i m i n a ( s t r i n g cad ) { s t r i n g ncad ; f o r ( i n t i = 0 ; i < cad. l e n g t h ( ) ; i ++) i f ( cad [ i ]!= ) ncad += cad [ i ] ; r e t u r n ncad ; } 43/83

Exercicios XI Criar as funções, LEFT e RIGHT, que retornem a subcadeia de n elementos a partir da esquerda e da direita respectivamente. Ex cad = transformar. Mostrar os 3 primeiros caracteres a partir da esquerda: tra. Mostrar os 5 primeiros caracteres a partir da direita: ormar. 44/83

Exercicios XII s t r i n g L e f t ( s t r i n g, i n t ) ; s t r i n g R i g h t ( s t r i n g, i n t ) ; i n t main ( ) { s t r i n g cad, cadright, c a d L e f t ; cout << " Inserir cadeia: " ; c i n >> cad1 ; c a d l e f t = L e f t ( cad, 4 ) ; c a d R i g h t = R i g h t ( cad, 4 ) ; cout << "Right " << c a d R i g h t << e n d l ; cout << "Left " << c a d L e f t << e n d l ; r e t u r n 0 ; } 45/83

Exercicios XIII s t r i n g L e f t ( s t r i n g cad, i n t n ) { s t r i n g ncad ; i n t tam = cad. l e n g t h ( ) ; i f ( n > tam ) { n = tam ; } } f o r ( i n t i = 0 ; i < n ; i ++) { ncad += cad [ i ] ; } r e t u r n ncad ; 46/83

Exercicios XIV s t r i n g R i g h t ( s t r i n g cad, i n t n ) { s t r i n g ncad ; i n t tam = cad. l e n g t h ( ) ; } i f ( n > tam ) { n = tam ; } f o r ( i n t i = tam n ; i < tam ; i ++) { ncad += cad [ i ] ; } r e t u r n ncad ; 47/83

Exercicios XV O método substr(ini_pos, numcaract) da classe string em C++ extrai uma subcadeia de dimensão numcaract a partir da posição ini_pos. Por exemplo, s t r i n g p a l a v r a = "a maioria voltara " ; cad = p a l a v r a. s u b s t r ( 2, 7 ) ; A variável cad contem a cadeia maioria. 48/83

Exercicios XVI Determinação da primeira ocorrência de uma subcadeia em uma cadeia. 49/83

Exercicios XVII 50/83

Exercicios XVIII 51/83

Exercicios XIX 52/83

Exercicios XX 53/83

Exercicios XXI 54/83

Exercicios XXII 55/83

Exercicios XXIII 56/83

Exercicios XXIV 57/83

Exercicios XXV 58/83

Exercicios XXVI 59/83

Exercicios XXVII 60/83

Exercicios XXVIII 61/83

Exercicios XXIX 62/83

Exercicios XXX 63/83

Exercicios XXXI 64/83

Exercicios XXXII 65/83

Exercicios XXXIII 66/83

Exercicios XXXIV 67/83

Exercicios XXXV 68/83

Exercicios XXXVI 69/83

Exercicios XXXVII 70/83

Exercicios XXXVIII 71/83

Exercicios XXXIX 72/83

Exercicios XL 73/83

Exercicios XLI 74/83

Exercicios XLII 75/83

Exercicios XLIII b o o l E s t a C o n t i d a ( s t r i n g f r a s e, s t r i n g p a l ) ; i n t main ( ) { s t r i n g f r a s e, p a l ; cout << " Inserir cadeia e subcadeia : " ; c i n >> cad1 >> cad2 ; i f ( E s t a C o n t i d a ( cad1, cad2 ) ) cout << " subcadeia contida " ; r e t u r n 0 ; } 76/83

Exercicios XLIV b o o l e s t a C o n t i d a ( s t r i n g f r a s e, s t r i n g p a l ) { i n t i, j, cont ; f o r ( i = 0 ; i < f r a s e. s i z e ( ) p a l. s i z e ( ) ; i ++) { f o r ( j = 0 ; j < p a l. s i z e ( ) ; j ++) { i f ( f r a s e [ i + j ]!= p a l [ j ] ) break ; } i f ( j == p a l. s i z e ( ) ) r e t u r n t r u e ; } r e t u r n f a l s e ; } 77/83

Instrução for com base em intervalo I Para realizar operações com cada um dos caracteres em um string, a forma mais segura de realizar é através do uso de um comando introduzido no novo padrão: comando for com base em intervalo f o r ( d e c l a r a c a o : e x p r e s s a o ) comando onde expressao é um objeto que representa uma sequência e declaracao define uma variável que será usada para acessar a sequência 78/83

Instrução for com base em intervalo II Imprimir cada caracter usando o comando for com base em intervalo s t r i n g s t r ( "alguma cadeia" ) ; f o r ( auto c : s t r ) // para cada c h a r em s t r cout << c << e n d l ; // imprime o c h a r c o r r e n t e 79/83

Instrução for com base em intervalo III Contar o número de caracteres de pontuação em uma string #i n c l u d e <i o s t r e a m > #i n c l u d e <cctype > #i n c l u d e <s t r i n g > u s i n g namespace s t d ; i n t main ( ) { s t r i n g s ( "Bom dia!!!!" ) ; i n t count = 0 ; f o r ( auto ch : s ) { i f ( i s p u n c t ( ch ) ) count++; } cout << count ; r e t u r n 0 ; } 80/83

Instrução for com base em intervalo IV Usando for com base em intervalo para modificar os valores de uma string. Para pode alterar os valores do caracteres, deve-se definir uma variável que acesse os dados por referencia (&). 81/83

Instrução for com base em intervalo V Converter os caracteres de uma string em maiúsculos #i n c l u d e <i o s t r e a m > #i n c l u d e <cctype > #i n c l u d e <s t r i n g > u s i n g namespace s t d ; i n t main ( ) { s t r i n g s ( "Bom dia!!!!" ) ; i n t count = 0 ; f o r ( auto &ch : s ) { ch = t o u p p e r ( ch ) ; } cout << s ; r e t u r n 0 ; } 82/83

FIM 83/83