Linguagem C Strings.

Slides:



Advertisements
Apresentações semelhantes
Programação II Estruturas de Dados
Advertisements

Programação para Engenharia I
Profª. Leticia Lopes Leite LAPRO A - FACIN
ICC – Matrizes Jorge Macêdo.
Prof. Luis Otavio Alvares
LINGUAGEM C.
Introdução à Linguagem C
UDESC - Prof. Juliano Maia
Ponteiros em C.
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
LINGUAGEM ESTRUTURADA TURBO C
Universidade Federal do Espírito Santo Programação II Vetores Professora: Norminda Luiza.
Vetores, Matrizes e Funções
Estruturas de Dados Homogêneas Unidimensionais – Vetores e Strings
Ponteiros em Linguagem C
Slides Prof. Jean SIMÃO Revisão: Prof. João FABRO
Linguagem C Strings.
Estruturas de Dados Homogêneas Multidimensionais – Matrizes
Fundamentos de Programação 1
Ponteiros.
Revisão da Linguagem C.
Strings Definição: Não confundir caracteres com strings
O Portal do Estudante de Computação
O Portal do Estudante de Computação
Strings: Cadeia de Caracteres
Aula prática 7 Strings Monitoria de Introdução à Programação
PROGRAMAÇÃO ESTRUTURADA II
Linguagem de Programação II Parte VII
Ordenação e Pesquisa de Dados Marco Antonio Montebello Júnior
CADEIA DE CARACTERES (Strings)
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Estrutura de Dados Avançada
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Aula Prática 12 Operações com Arquivos Monitoria
Curso de C/C++ Aula 2 Instrutor: Luiz Felipe Sotero
Computação Eletrônica
Vetor Prof. Guilherme Baião S. Silva Adaptações:
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Aula prática 7 Strings Monitoria de Introdução à Programação
Estruturas de Dados Aula 6: Cadeias de Caracteres
STRINGS Dilvan Moreira (baseado no livro Big Java e Z. Liang)
Programação de Computadores I – Arquivos
Linguagem C - Funções Automação Industrial Informática Básica
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
1 Introdução à Linguagem C Strings Deise Saccol Adaptado de slides das Profas. Patrícia Jaques e Mônica Py.
 2000 Prentice Hall, Inc. All rights reserved. 1 Capítulo 8 - Caracteres e Strings Sumário 8.1Introdução 8.2Conceitos Fundamentais de Strings e Caracteres.
1 Introdução à Linguagem C Strings Deise Saccol Adaptado de slides das Profas. Patrícia Jaques e Mônica Py.
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Programação Computacional Aula 9: Meu primeiro programa em C
Algoritmo e Estrutura de Dados I Aulas 12 – Linguagem C Strings Márcia Marra
Linguaguem de Programação II
 O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.
Estruturas Homogêneas – Vetores e Matrizes
Profa. Maria Augusta Constante Puget
Algoritmo e Estrutura de Dados I Aulas 15 – Linguagem C Alocação Dinâmica de Memória Márcia Marra
Linguagem de Programação
Arrays e Matrizes na Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Programação em C Aula 9.
Programação II Arquivos Autoria: Ernani Santos Modificação: Clebson Oliveira Adaptação: Claudia Boeres.
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.
Computação – Informática Aula N. 05 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Matrizes em C”
Fundamentos de Programação 1 Slides C – Número 4 Prof. SIMÃO Jean Marcelo SIMÃO Estrutura de Dados Homogêneas “vetores de números e de caracteres”
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
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.
FUNÇÕES Dilvan Moreira (baseado em material de Z. Liang)
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:

Linguagem C Strings

Strings em Linguagem “C” Definição de string Strings são seqüências de caracteres diversos. São conhecidos por “literais” na teoria de algoritmos estruturados, sendo representados entre aspas. Alguns exemplos de strings: “Fulano da Silva”, “? Interrogação? “, “1,234”, “0”. Em C, strings são representadas através de vetores de caracteres, terminados com o caractere de fim de string cujo valor na tabela ASCII é zero (0 ou \0).

Strings em Linguagem “C” Declaração de string Um vetor em C que pretenda armazenar uma string n caracteres deve ser alocado com n+1 posições do tipo char para conter o terminador de string. A inicialização de uma string pode ser efetuada com o uso de uma seqüência de caracteres entre aspas. Exemplos de declarações de string: char frase[] = “Primeira string”; /*Inicialização sem a dimensão */ char frase[16] = “Primeira string”; char frase[6] = {‘T’, ‘e’, ‘s’, ‘t’, ‘e’, 0); /* inicializado como um vetor de caracteres comum, ‘forçando’ o caracter terminador */ No caso do primeiro e do segundo exemplo, a representação do vetor da string frase é: ‘P’ ‘r’ ‘i’ ‘m’ ‘e’ ‘i’ ‘r’ ‘a’ ‘’ ‘s‘ ‘t’ ‘r’ ‘i’ ‘n’ ‘g’ 0 Onde cada posição representa um byte de memória (tamanho de um char).  

Strings em Linguagem “C” Strings e Ponteiros Vetores em C são armazenados em memória a partir de um “endereço base”; Strings são vetores de caracteres, portanto também possuem este endereço; char String1[11] = “Hello World”; n n+1 n+2 n+3 n+4 n+5 n+6 n+7 n+8 n+9 n+10 n+11 String1 String1 é um “Ponteiro” para a área de memória iniciada na posição “n”. Esta área de memória possui 11 posições (sempre reservar uma posição para o código de finalização de string (\0, código ASCII zero) H e l o W r d \0 n

“Ponteiros” em Linguagem C As variáveis do tipo vetor (ou string) e matriz são, na verdade, “ponteiros” ou “apontadores” para áreas de memória onde os dados são armazenados; Um “ponteiro” é uma variável que armazena o endereço de uma posição da memória do computador; Assim, a variável String1 “aponta” para a primeira posição onde é armazenado o vetor de caracteres (neste caso, o endereço de memória n) Para identificar que se deseja utilizar os dados “apontados” por um ponteiro, utiliza-se o operador asterisco (*) na frente do nome da variável do tipo “ponteiro”; Assim, a variável String1 possui o valor n, e *String1 representa a área de memória que inicia na posição n !!!!

Strings em Linguagem “C” Operações sobre string String não é um tipo primitivo da linguagem C, por isso as seguintes operações NÃO são válidas: char str1[10]; char str2[] = “Palavra 2”; str1 = str2 /* ERRO! Não copia str2 em str1 */ if (str1 == str2) /* ERRO! Não compara str1 com str2 */ { …. } Para operar sobre strings são utilizadas funções da biblioteca string.h. Dezenas de funções com diversas variações..... 

Strings em Linguagem “C” strlen Protótipo: int strlen (char *string) Descrição: Retorna o número de caracteres de uma string (exceto o caractere de fim de string). Exemplo: char nome[] = “Fulano”; printf (“O nome possui %d letras”, strlen (nome)); ..... 

Strings em Linguagem “C” strcpy Protótipo: char *strcpy (char *string1, char *string2) Descrição: Copia o conteúdo de string2 em string1 e retorna o endereço de string. Exemplo: char str1[10]; char str2[] = “Palavra”; strcpy (str1, str2); /* Agora str1 também contém “Palavra” */

Strings em Linguagem “C” strcmp Protótipo: int strcmp (char *string1, char *string2) Descrição: Compara os conteúdos de string1 e string2 caracter a caracter e retorna 0 se string1 = string2 <0 se string1 < string2 >0 se string1 > string2 Exemplo: char nome1[] = “Fulano” char nome2[] = “Beltrano”; if (strcmp (nome1, nome2) == 0) {printf (“Nomes são iguais”);} else {printf (“Nomes são diferentes);}

Strings em Linguagem “C” strcat Protótipo: strcat (char *string_destino, char *string_origem) Descrição: Concatena os conteúdos de string1 e string2 Exemplo: char nome1[] = “Fulano” char nome2[] = “da Silva”; char nome_completo[30]=“”; strcat(nome_completo, nome1); printf (“%s\n”, nome_completo); strcat(nome_completo, nome2); Este programa imprimirá: Fulano Fulano da Silva

Strings em Linguagem “C” atoi (ascii to int – texto para número - necessita #include <stdlib.h>) Protótipo: int atoi(char *string) Descrição: Converte o string em um número inteiro Exemplo: int a; a = atoi(“10”); atof (ascii to float – converte texto para números reais-float) double atof(char *string) Descrição: Converte o string em um número em ponto flutuante(double) double d; d = atof(“101.15”);

Strings em Linguagem “C” gets (necessita #include <stdio.h>) Protótipo: void gets (char *string1) Descrição: Recebe uma string via teclado e armazena em string1. Os caracteres são armazenados até que o enter seja pressionado. Exemplo: char nome[10]; gets (nome);

Strings em Linguagem “C” Observações:a função gets() permite que o usuário forneça mais caracteres do que os que podem ser armazenados no vetor(o que pode causar um erro). Para evitar este problema, pode-se utilizar a função fgets: char nome[10]; fgets(nome, 10, stdin); /* ‘stdin’ é um arquivo aberto por padrão, relacionado aos dados digitados via teclado */ No exemplo mostrado, fgets receberia 9 caracteres (ou até que o usuário teclasse enter) e armazenaria os dados digitados na string nome, adicionando o caracter terminador de string. É importante observar que, caso o usuário digitasse enter antes de 9 caracteres, o caracter de nova linha (‘\n’) também seria armazenado no vetor. scanf (“%s”, str); /* Recebe uma string até que o primeiro espaço seja inserido */  

Funções em Linguagem “C” Exercício 1: Criar um programa capaz de calcular o tempo entre dois horários quaisquer de um determinado dia. O programa deve ler dois horários, no formato HH:MM:SS(dois dígitos para hora, dois para minutos e dois para segundos). O programa deve verificar se o horário é válido(HH entre 00 e 23, MM entre 00 e 59, SS entre 00 e 59). O programa deve ter uma função para calcular a quantidade de segundos em um horário, e outra função para calcular e imprimir a quantidade de horas, minutos e segundos em uma quantidade de segundos;

Funções em Linguagem “C” Exercício 2: Faça um programa que dadas 2 palavras, determine: Se as palavras são iguais; Caso as palavras sejam diferentes, qual delas tem maior comprimento (não esquecer a possibilidade de existirem palavras diferentes de mesmo tamanho); Verifique se a segunda palavra é uma sub string da primeira: Exemplo: Palavra 1= casamento Palavra 2 = casa

Funções em Linguagem “C” Exercício 3: Faça um programa que leia 10 nomes completos do teclado, e ao final apresente uma listagem dos nomes no formato: Sobrenome, Primeiro_Nome; Exemplo: João Alberto Fabro José da Silva Josué dos Santos ------------------------ Fabro, João Silva, José Santos, Josué