LPG – I Prof. Flavio Marcello

Slides:



Advertisements
Apresentações semelhantes
Laboratório de Programação
Advertisements

Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Algoritmo e Programação
Programação II Estruturas de Dados
Programação para Engenharia I
Profª. Leticia Lopes Leite LAPRO A - FACIN
ICC – Matrizes Jorge Macêdo.
Introdução a Programação
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
Alocação Dinâmica de Memória
Programação II Funções especiais Ricardo de Sousa Britto
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
LPG - I: Alocação Dinâmica de Memória - Ponteiros
UDESC - Prof. Juliano Maia
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Universidade Federal do Espírito Santo Programação II Vetores Professora: Norminda Luiza.
Linguagem C Strings.
Estruturas de Dados Homogêneas Unidimensionais – Vetores e Strings
Ponteiros em Linguagem C
Estruturas de Dados Homogêneas Multidimensionais – Matrizes
Fundamentos de Programação 1
Ponteiros.
VETORES, STRINGS E MATRIZES
O Portal do Estudante de Computação
O Portal do Estudante de Computação
O Portal do Estudante de Computação
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
O Portal do Estudante de Computação
Introdução a Computação e Cálculo Numérico
Strings: Cadeia de Caracteres
Registros.
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 7 Strings Monitoria de Introdução à Programação
1 Ponteiros Ponteiros são variáveis que guardam localizações em memória. A declaração de uma variável ponteiro x para um dado tipo type é type *x; Essa.
Linguagem de Programação II Parte VII
CADEIA DE CARACTERES (Strings)
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Seminário 1: Revisão de C
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Computação Eletrônica
Vetor Prof. Guilherme Baião S. Silva Adaptações:
By Ducheno Kelly Centro de Formação São Domingos.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
3. Introdução à Linguagem C
Aula P.02 – BCC202 Revisão sobre Ponteiros Túlio Toffolo
Aula prática 7 Strings Monitoria de Introdução à Programação
Linguagem de Programação C#
Programação Orientada a Objetos - Java
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo VII Variáveis Indexadas Numéricas.
Estruturas de Dados Aula 6: Cadeias de Caracteres
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
STRINGS Dilvan Moreira (baseado no livro Big Java e Z. Liang)
Estruturas Revisando: tipos de dados simples
Programação de Computadores I – Arquivos
Linguagem C - Funções Automação Industrial Informática Básica
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Algoritmo e Estrutura de Dados I Aulas 12 – Linguagem C Strings Márcia Marra
Computação Eletrônica Strings. Strings (Cadeias de Caracteres) Um string é um texto. Em Pascal, este texto deve ser delimitado por aspas simples. Exemplo:
Estruturas Homogêneas – Vetores e Matrizes
Profa. Maria Augusta Constante Puget
Aula Prática 6 Vetores e Matrizes Monitoria
Aula prática 7 Strings Monitoria de Introdução à Programação.
Linguagem de Programação
Arrays e Matrizes na Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
PCI- Vetores Profa. Mercedes Gonzales Márquez. Aula 5 - VetoresAlgoritmos e Estruturas de Dados I Sequência de valores todos do mesmo tipo Nome único.
Aula Prática 6 Ponteiros Monitoria  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.
Clique para editar o título Linguagem C Para programadores Python PMR
Estruturas Homogêneas - Vetores
1 Aula 07 Strings Prof. Filipe Mutz. 2 Em nossos programas ainda não vimos como armazenar palavras e textos, e eles são muito importantes! Exemplos: Programas.
Aula Prática 7 STRINGS Monitoria  Um dos tipos de arranjos que mais ocorre em C é o arranjo de caracteres, ou string. C não suporta um tipo básico.
Transcrição da apresentação:

LPG – I Prof. Flavio Marcello Strings Manipulação LPG – I Prof. Flavio Marcello

Manipulação de Strings Em linguagem "C" não existe o tipo string. A utilização desse tipo de variável se dá através da utilização de um cadeia de caracteres, ou seja, um vetor de caracteres terminados por um nulo (\0). Para implementar esse tipo de dado deve-se ter sempre um caracter a mais para armazenar o terminador nulo. LPG-I

Manipulação de Strings Para declarar um tipo string: char nome[10];  Na memória a estrutura de armazenamento que se forma é: nome F L A V I O \0 1 2 3 4 5 6 7 8 9 LPG-I

Manipulação de Strings Declaração de Tipos Caracteres char sexo; char nome[35]; char s[256]; sexo é uma variável que irá armazenar apenas um caractere denotado por apóstrofes ou aspas simples (ex. 'M' ou 'F'). nome é uma variável string que sustenta um máximo de 35 caracteres. s é uma string capaz de armazenar 256 caracteres, que a linguagem C indexa de s[0] até s[255]. Como a string pode conter menos que 256 caracteres, a linguagem C usa o caractere NULL para representar o último caractere da string. LPG-I

Caractere NULL (\0) É responsabilidade dos programas que manipularem strings garantir que o caractere NULL esteja presente. O programa a seguir, define uma string de 256 caracteres, e, depois, atribui as letras maiúsculas do alfabeto aos primeiros vinte e seis caracteres da string: #include "stdio.h" void main() { char s[256]; for (int i=0; i<=25; i++) s[i] = 'A' + i; // garante o caractere “NULL” no final da cadeia s[i] = NULL; // ou s[i] = '\0'; printf("A string contém\n"); printf("%s", s); } LPG-I

Manipulação de Strings Para fazer a entrada de dados utilizamos as funções de entrada:  gets(nome); // mais utilizado pois aceita qualquer tipo de caracter. ou scanf("%20s",nome); // não aceita espaço em branco (limitada), o 20 limita a 20 carateres, truncando a string.  Não utiliza & pois a primeira posição da string contém o endereço de memória. LPG-I

Operação de “leitura” de strings A função scanf() é adequada para a leitura de dados numéricos e limitada para a leitura de strings. Para contornar este problema deve-se fazer uso da função de entrada de dados: gets(), pois o propósito desta função é efetuar leitura de dados do tipo string fornecidos via teclado. A função gets() aceita caracteres em branco no meio da string e coloca o caractere de controle '\0' somente quando for pressionada a tecla <ENTER>. Observe o exemplo a seguir: #include "stdio.h" void main() { char nome[35]; printf("Digite o seu nome:\n"); gets(nome); printf("\nSeja bem vindo, %s.", nome); } LPG-I

Aprendendo como 'A' difere de "A" Como foi definido, uma string de caracteres é uma seqüência de zero ou mais caracteres ASCII que a linguagem C tipicamente finaliza com NULL. Quando se trabalha com caracteres dentro de C, pode-se usar o ASCII numérico de um caractere ou pode-se colocá-lo dentro de apóstrofes, tal como 'A'. Por outro lado, quando é usado aspas, tal como "A", C cria uma string de caracteres que contém a letra especificada (ou letras), e finaliza a string com o caractere NULL. Como a linguagem C armazena de forma diferente, as constantes de caractere e string não são iguais, e é necessário tratá-las de forma diferente dentro dos programas. A A \0 'A' "A" LPG-I

Acrescentando “aspas” em uma String Para criar uma constante string, o programa deverá colocar os caracteres desejados dentro de aspas: "Isto é uma constante de string" Dependendo do programa, algumas vezes uma constante string deverá conter um caractere aspas, por exemplo: "Pare!", ele disse. Como a linguagem C usa as aspas para delimitar as constantes string, é necessário ter uma forma de dizer ao compilador que deseja-se incluir aspas dentro da string. Para fazer isso, deve-se usar a seqüência de escape \", como demonstrado a seguir: "\"Pare!\", ele disse." LPG-I

Manipulação de Strings Para manipular as informações armazenadas em uma string podemos utilizar as funções string ou utilizamos as funções de manipulação de caracter, já que uma string é um vetor de caracteres. LPG-I

Funções de Manipulação de Strings <string.h> strcpy() - copia uma string em outra. Forma Geral : strcpy (s1,s2); // copia o conteúdo de s2 em s1. strcmp() - compara duas strings. Forma Geral : x=strcmp(s1,s2); // menor quando s2 < 0; iguais s2== 0 e maior quando s2 > 0 strcat() - junta o conteúdo de duas strings. Forma Geral : strcat(s1,s2); // s1 irá conter o resultado da junção das 2 strings. LPG-I

Funções de Manipulação de Strings <string.h> strlen() - fornece o tamanho de uma string. Forma Geral : x=strlen(s1); // x vai conter o número de caracteres ocupados na string . strchr() – verifica se um caracter pertence a string. Forma Geral : strschr(s1,ch);    // verdadeiro se existir o caracter ou falso se não existir. strstr() – verifica se uma string existe dentro da outra string. Forma Geral : strstr(s1,s2); // verdadeiro  se s2 existir em s1 ou falso se não existir. LPG-I

biblioteca <string.h> Determinando o “tamanho” de uma string Muitas das operações realizadas, em variável do tipo string, são executadas com base no número de caracteres, ou tamanho, da string. A maioria dos compiladores C fornece uma função strlen, que retorna o número de caracteres em uma string. #include "stdio.h" #include "string.h" void main() { char nome[35] = "Flavio Marcello Strelow"; printf("%s contém %d caracteres.", nome, strlen(nome)); } LPG-I

biblioteca <string.h> Atribuindo, ou copiando caracteres strcpy(destino, fonte); copia, ou atribui o conteúdo da string fonte para a string destino. #include "stdio.h" #include "string.h" void main() { char nome[35]; strcpy(nome, "Flavio Marcello Strelow"); printf("%s.", nome); } LPG-I

biblioteca <string.h> Anexando, ou concatenando caracteres strcat(destino, fonte); anexa, ou concatena, o conteúdo da string fonte no final da string destino. #include "stdio.h" #include "string.h" void main() { char nome[35] = "Flavio"; strcat(nome, " Marcello"); strcat(nome, " Strelow."); printf("%s.", nome); } LPG-I

biblioteca <string.h> Coparando duas cadeias de caracteres int strcmp(s1, s2); compara duas strings “exatamente”, ou seja, caracteres minúsculos são considerados diferentes e maiores que os respectivos caracteres maiúsculos. int strcmpi(s1, s2); compara duas strings sem “case sensitivity”, ou seja, não diferencia caracteres minúsculos de caracteres maiúsculos. estas duas rotinas retornam um valor inteiro com o resultado da comparação: resultado < 0 se s1 < s2 resultado == 0 se s1 == s2 resultado > 0 se s1 > s2 LPG-I

biblioteca <string.h> Coparando duas cadeias de caracteres #include "stdio.h" #include "string.h" void main() { char s1[3] = "aaa", s2[3] = "bbb", s3[3] = "ccc"; if (strcmp(s2, s1) > 0) printf("s2 eh maior que s1.\n"); else printf("s2 eh menor que s1.\n"); if (strcmp(s2, s3) > 0) printf("s2 eh maior que s3.\n"); printf("s2 eh menor que s3.\n"); } LPG-I

biblioteca <string.h> Convertendo uma string para maiúsculas char *strupr(s); converte a string s para “maiúsculas”. char *strlwr(s); converte a string s para “minúsculas”. #include "stdio.h" #include "string.h" void main() { char nome[35] = "Flavio Marcello Strelow"; printf("%s.\n", strupr(nome)); printf("%s.\n", strlwr(nome)); } LPG-I

Funções de Manipulação de Caracteres <ctype.h> isdigit() - verifica se o caracter é um número de 0-9. Forma Geral : isdigit(a); // !=0 é número; =0 não é número. isalpha() - verifica se o caracter é uma letra . Forma Geral : isalpha(a); // !=0 é letra; =0 não é letra. isupper() - verifica se um caracter está em maiúscula. Forma Geral : isupper(a); // !=0 é maiúscula =0 não é. islower() - verifica se um caracter está em minúscula. Forma Geral : islower(a); // !=0 é minúscula =0 não é. LPG-I

Funções de Manipulação de Caracteres <ctype.h> ispunct() - verifica se um caracter é ponto. Forma Geral : ispunct(a); // !=0 é ponto =0 não é. isspace() - verifica se um caracter é espaço. Forma Geral : isspace(a); // !=0 é espaço; =0 não é. toupper() - transforma um caracter em letra maiúscula. Forma Geral : a=toupper(a); // o conteúdo de a em maiúscula. tolower() - transforma um caracter em letra minúscula. Forma Geral : a=tolower(a); // o conteúdo de a em minúscula LPG-I

biblioteca <string.h> e <ctype.h> Convertendo um caractere para maiúsculo char toupper(ch); converte o caractere ch para o correspondente maiúsculo. #include "stdio.h" #include "string.h" #include "ctype.h" void main() { char nome[35] = "Flavio Marcello Strelow"; char maiusculas[35]; for (int i=0; i<strlen(nome); i++) maiusculas[i] = toupper(nome[i]); maiusculas[i] = NULL; printf("%s.", maiusculas); } LPG-I

biblioteca <string.h> e <ctype.h> Convertendo um caractere para minúsculo char tolower(ch); converte o caractere ch para o correspondente minúsculo. #include "stdio.h" #include "string.h" #include "ctype.h" void main() { char nome[35] = "Flavio Marcello Strelow"; char minusculas[35]; for (int i=0; i<strlen(nome); i++) minusculas[i] = tolower(nome[i]); minusculas[i] = NULL; printf("%s.", minusculas); } LPG-I

Manipulação de Strings Exemplos

Determinar o tamanho de uma string. Exemplo 01 Determinar o tamanho de uma string. Para determinar o tamanho de uma string use a função strlen( ). Esta função faz parte do arquivo de cabeçalho string.h. Sua sintaxe é: strlen(string) LPG-I

Exemplo 01 /* Determinando o tamanho de uma string usando a função strlen() */ #include <stdio.h> #include <string.h> int main() { char string[20]; printf("\n"); printf("Determinando o tamanho de uma string\n"); printf("------------------------------------\n"); printf("Digite a string :"); scanf("%s",&string); printf("A string tem %d carateres.\n\n",strlen(string)); return(0); } LPG-I

strcpy(destino, origem) Exemplo 02 Copiar uma string em outra . Para copiar uma string em outra use a função strcpy( ). Esta função faz parte do arquivo de cabeçalho string.h. Sua sintaxe é: strcpy(destino, origem) LPG-I

Exemplo 02 /* Copiando uma string em outra usando a função strcpy() */ #include <stdio.h> #include <string.h> int main() { char string1[10], string2[10]; printf(“\nCopiando uma string em outra\n"); printf("----------------------------\n\n"); printf("Digite string1 :"); scanf("%s",&string1); printf(“\nstring1 = %s\n",string1); printf("string2 = %s\n",strcpy(string2,string1)); return(0); } //Na prática, todo conteúdo de string2 é substituído por string1. LPG-I

Invertendo uma string utilizando a função strrev( ) . Exemplo 03 Invertendo uma string utilizando a função strrev( ) . Para inverter o conteúdo de uma string use a função strrev( ). Ela faz parte do arquivo de cabeçalho string.h. Sua sintaxe é: strrev(string) LPG-I

Exemplo 03 /* Invertendo uma string usando a função strrev() */ #include <stdio.h> #include <string.h> int main() { char string[20]; printf(“\nInvertendo uma string\n"); printf("---------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("Invertendo ==> %s",strrev(string)); return(0); } LPG-I

Strings- Exercício em Classe Exercício 1: Dadas duas palavras diferentes, o programa deverá executar os tópicos a seguir: a) obter o número de caracteres de cada uma das palavras; b) descobrir qual a menor palavra ou indicar se são do mesmo tamanho c) juntar as duas strings em uma variável auxiliar d) copiar a 2a string na 1a string LPG-I

Strings- Exercício em Classe Exercício 2: Leia uma string e substitua os seus caracteres por: L – quando for letra, E – quando for espaço, P – quando for ponto e N – quando for número. Exercício 3: Leia um numero com string e converta para float e int. Faca a impressão dos valores, após, converta o valor float para string e o valor int para string, apresentando os valores. LPG-I