String em C++ Verificando o tamanho da string

Documentos relacionados
5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

INF 1007 Programação II

INF 1005 Programação I

Tabela ASCII de caracteres de controle

Strings. Todas as funções apresentadas neste documento estão no arquivo de cabeçalho string.h.

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

1 - INTRODUÇÃO: O QUE É C?

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Curso de C para Engenharias

Programando em C++ Histórico da Linguagem C

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

INTRODUÇÃO À LINGUAGEM C++

14.1 Vetor - Problemas

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Caracteres, Vetores e Matrizes

Programação e Sistemas de Informação

Estrutura de Dados Básica

AULA 1 AULA 2. Estudo dirigido para as três primeiras AULAS de LPI Professora ANITA MACIEL 1º ESTUDO DIRIGIDO

Programação científica C++

Variáveis e Comandos de Atribuição

Algoritmos e Programação

INFORMÁTICA E COMPUTAÇÃO CMP 1060 CONTROLE DE FLUXO ESTRUTURA CONDICIONAL 1

INF 1005 Programação I lista 12

Sistema de Numeração e Códigos. CPCX UFMS Prof. Renato F. dos Santos

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Fundamentos de Programação Linguagem C++ Entrada e saída com arquivos

IFTO LÓGICA DE PROGRAMAÇÃO AULA 05

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

20 Caracteres - Tipo char

Algoritmos e Técnicas de

Estrutura switch if-else switch switch switch if-else-if switch switch case default break switch switch break Observações: case

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Programação de Computadores Primeiros Passos Práticos em C++

O COMPUTADOR. Introdução à Computação

Exemplos. char c; int i=67;... c= A ; c=c+1; if (c== B )... c=i; i=c; i++; if (i>= C )...

Algoritmo Iterativo. Dilema do Martelo x Edifício. O Martelo. O Edifício 01/06/2014. Dilema das ações x declarações

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Introdução a Computação

Tipos de Dados Avançados Vetores e Matrizes

Aula de JavaScript 05/03/10

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

Computação II Orientação a Objetos

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

Fundamentos de Programação II. Introdução à linguagem de programação C++

Programação de Computadores I. Linguagem C Arquivos

ALGORITMOS E PROGRAMAÇÃO PARA COMPUTADORES II

LINGUAGEM C. Estrutura básica de um programa

LTP-IV. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Testando e Comparando Valores

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

Conceitos básicos da linguagem C

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Curso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For.

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

Conversão de Tipos e Arrays

Comando de Seleção: Switch

UNIVERSIDADE ESTADUAL PAULISTA

Linguagem de Programação I

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

Convertendo Algoritmos para a Linguagem C

Definição de Programas de Computadores e Linguagem de Programação de Comutadores

Curso Java Starter. 1

I n f o r m á t i c a

Unidade 5: Sistemas de Representação

Descrição e análise da implementação em Assembly MIPS da função itoa

Princípios de programação em Linguagem C++

Programação: Tipos, Variáveis e Expressões

Manipulando Strings no VBA (Replace, Mid e InStr)

10/02/2015. Introdução. Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Algoritmos e Lógica de Programação

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

Char e Strings de Caracteres

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Conceitos de Linguagens de Programação

Programação em linguagem C EA870 - FEEC - Unicamp

Arquitetura de Sistemas Digitais (FTL066) Instruções: Linguagem do Computador Segunda Lista de Exercícios

Linguagens de Programação

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

Programação: Estruturas de seleção

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Neste artigo estudaremos os conceitos relacionados às matrizes unidimensionais (vetores) e multidimensionais.

Linguagem C Parte 4 - Extra

Transcrição:

String em C++ Uma das formas de se manipular cadeias de caracteres, também chamadas de strings em C+ + é armazená-las como vetores de char. Esta é a forma tradicional utilizada pela linguagem C. Então, definimos inicialmente o tamanho do vetor e depois podemos usar comandos da linguagem para manipular estes dados. Não podemos copiar uma string para outra com o comando de atribuição =, temos comandos para executar esta operação. Para manipular este tipo de string é preciso ter certo cuidado, pois o vetor sempre tem um tamanho definido e caso façamos um acesso a um endereço fora do limite do vetor, invadiremos outras áreas de memória de maneira indevida, e portanto, poderemos fazer o programa parar de funcionar Podemos também em C++, manipular strings através da classe String. Inicialmente veremos a manipulação de strings representadas por vetores de char. Os caracteres são também representados através de números que geralmente têm oito bits, esses números são traduzidos na tabela ASCII de 128 caracteres, como existem inúmeras regiões no mundo com características linguísticas próprias, a tabela ASCII é estendida por um bloco de caracteres acima dos 128 mais baixos que varia de acordo com as necessidades de cada língua. A parte superior da tabela ASCII é conhecida como parte estendida e é referenciada por páginas de códigos para cada propósito linguístico, isso quer dizer que podemos ter os mesmos números significando caracteres diferentes para cada região do mundo. Cada caractere em C++ ocupa um byte na memória. Dessa forma, C é o caractere C (ocupa apenas 1 byte na memória) enquanto que, C é um vetor de caracteres (ocupa 2 bytes na memória onde 1 byte é reservado para o finalizador de strings). O tamanho da string deve sempre incluir o finalizador de strings ( \0 ). A função do finalizador de strings é única e estritamente para definir quais são as posições preenchidas dentro de vetor de caracteres das posições que não foram preenchidas Verificando o tamanho da string Para uma string armazenada em um vetor de char, podemos verificar quantos elementos deste vetor estão sendo efetivamente utilizados, ou seja, o tamanho da string digitada através do comando strlen presente no arquivo de cabeçalho cstring. Usa-se a função com o vetor entre parênteses: strlen(vetor). //Verificando tamanho de String #include <iostream> #include <cstring> using namespace std; int main (){ char nome[50]; cin.getline(nome,50); cout << "O nome armazenado é :" << nome << " que tem " \ << strlen(nome) << " caracteres." << endl; Um exemplo da saída deste programa seria:

O nome armazenado é: José Carlos que tem 11 caracteres. Copiando um String para Outra O comando strcpy pode ser usado para copiar os valores entre duas strings. A sintaxe seria: strcpy(destino, origem). Podemos especificar quantos dos primeiros caracteres queremos copiar, utilizando o comando strncpy. A sintaxe é strncpy(destino, origem, x), onde o terceiro parâmetro x deve ser substituído por um número inteiro que definirá a quantidade de caracteres que será copiada, partindo do inicio da string de origem. A seguir, um exemplo. Uma saída para este programa seria: Usando comandos de copias de strings Maria Tereza Maria Tereza Maria T Comparando duas strings O comando strcmp pode ser utilizado para comparar duas strings. A sintaxe é: strcmp(string1,string2) Se as strings forem iguais a função retorna zero, se string1 for maior a função retorna um valor menor que zero e se string2 for maior a função retorna um valor maior que zero. Unindo duas Strings // Copiando strings int main (){ char nome1[50], nome2[50], nome3[50]; cin.getline(nome1,50); //strcpy(destino, origem) strcpy(nome2,nome1); strncpy(nome3,nome1,7); cout << "Usando comandos de copias de strings" << endl; cout << nome1 << endl << nome2 << endl << nome3 << endl; Podemos unir ou concatenar duas strings com o comando strcat, cuja sintaxe é strcat(destino, origem). Este comando adiciona ao final da string destino o conteúdo presente na string origem. O comando strncat(destino, origem, nr_caracteres) pode ser utilizado para adicionar apenas alguns dos primeiros caracteres da string de origem. Verificando a ocorrência de um caractere O exemplo a seguir, percorre o vetor que armazena a string e informa em qual posição está a primeira ocorrência de um caractere.

int main (){ char nome[50]; int tam; char ch; cin.getline(nome,50); cout << "Digite uma letra: " << endl; cin >> ch; tam = strlen(nome); for (int i =0; i < tam; i++){ if (nome[i]==ch){ cout << "A primeira ocorrência do caractere a ocorre em " << i << endl; break; if (i == (tam -1)){ cout << "Não existe o caractere " << ch << " na string digitada." << endl; Verificando a ocorrência de uma substring int main(){ char palavra[15], subs[15]; cout << "Digite uma palavra: " << endl; cin.getline(palavra,25); cout << "Digite uma substring: " << endl; cin.getline(subs,25); if (strstr(palavra,subs)) cout << "Existe a substring : " << subs << " em " <<palavra << endl; else cout << "Não existe a substring : " << subs << " em " <<palavra << endl; cout << palavra << " " << subs << endl; Além dos comandos citados anteriormente, a tabela a seguir apresenta um resumo de alguns comandos que são utilizados na manipulação de strings. Estes comondos estão presentes no cabeçalho cstring. Tabela com resumo dos comandos:

Comando strlen(nome_vetor) strcpy(destino, origem) strncpy(destino, origem,x) strcat(destino, origem) strcmp(string1,string2) strncat(destino, origem,x) strupr(string) strlwr(string) strset(string,caractere) tolower toupper isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit Função Informa o tamanho da string armazenada Copia conteúdo da string origem para a destino Copia os x primeiros caracteres da string origem para a destino Adiciona ao final do vetor destino o conteúdo do vetor origem Verifica se as duas strings são iguais. Adiciona ao final do vetor destino os x primeiros caracteres do vetor origem Converte os caracteres da string para caixa alta ou deixa todos em maiúsculo Converte os caracteres da string para caixa baixa ou deixa todos em minúsculas. Substitui todos os caracteres de uma string pelo caractere passado como parâmetro. Converter um caractere em minúsculo Converte um caractere minúsculo em maiúsculo. Verifica se o caractere é alfanumérico Verificar se o caractere é uma letra do alfabeto Verificar se o caractere é um caractere de controle Verificar se o caractere é um digito decimal Verifica se o caractere tem representação gráfica Verifica se o caractere é minúsculo Verifica se o caractere é imprimível. Verifica se o caractere é um ponto Verificar se o caractere é um espaço em branco Verifica se o caractere é uma letra maiúscula Verifica se o caractere é um dígito hexadecimal Exemplo:

int main(){ char ch; cout << "Digite uma letra: " << endl; cin >> ch; cout << (char) tolower(ch) << " " <<(char) _toupper(ch) << endl; if ( isalnum(ch)) cout << "\nvoce digitou um caractere alfanumérico ; if ( isalpha(ch)) cout << "\nvoce digitou um letra do alfabeto"; if ( iscntrl(ch)) cout << "\nvoce digitou um caractere de controle"; if ( islower(ch)) cout << "\nvoce digitou um caractere minúsculo"; if ( isprint(ch)) cout << "\nvoce digitou caractere imprimível"; if ( ispunct(ch)) cout << "\nvoce digitou um ponto"; if ( isspace(ch)) cout << "\nvoce digitou um espaço"; if ( isupper(ch)) cout << "\nvoce digitou um caractere maiúsculo"; if ( isxdigit(ch)) cout << "\nvoce digitou um caractere hexadecimal";