Baixe o app para aproveitar ainda mais
Prévia do material em texto
N575 - Algoritmos e Programação de Computadores Vetores e manipulação de cadeias Prof. Raphael Torres Santos Carvalho N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 1 Roteiro Objetivo Vetores Manipulação de cadeias N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 2 Objetivo Identificar coleções de elementos de dados do tipos vetores apresentando métodos aplicados a essa estrutura. N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 3 Relembrando... Vetores são arrays unidimensionais, ou seja, são variáveis indexadas que possuem apenas um índice. Os vetores são estruturas de dados compostas de várias posições, onde em cada posição podemos colocar um valor. Quando nós dizemos que uma variável é do tipo vetor nela podemos armazenar várias informações do mesmo tipo (por isto os vetores são estruturas de dados homogêneas) colocando cada informação em uma posição diferente. N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 4 Relembrando... Sintaxe da declaração de um vetor: tipo_da_variavel nome_da_variavel[numero_de_elementos]; Quando o C vê uma declaração como esta ele reserva um espaço na memória suficientemente grande para armazenar o número de células especificadas em tamanho. Por exemplo, se declararmos: float exemplo [20]; o C irá reservar 4x20=80 bytes. Estes bytes são reservados de maneira contígua. N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 5 Relembrando... Na linguagem C o índice começa sempre em zero. Isto significa que, no exemplo acima, os dados serão indexados de 0 a 19. Para acessá-los vamos escrever: exemplo[0] exemplo[1] ... exemplo[19] N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 6 Relembrando... Na linguagem C, o tipo char é o tipo básico para armazenar caracteres (letra/simbolo/número) da tabela ASCII O tipo char é representado por 8 bits ou 1 byte N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 7 Tabela ASCII N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 8 Relembrando... E se quisermos armazenar um nome, uma frase ou um texto em Linguagem C, como fazemos? Utilizamos uma cadeia de caracteres. Uma cadeia de caracteres, mais conhecida como string, é uma sequência de letras e símbolos, onde os símbolos podem ser espaços em branco, dígitos e vários outros como pontos de exclamação e interrogação, símbolos matemáticos, etc. N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 9 Strings String em C consiste em um vetor unidimensional de caracteres terminada pelo caractere NULL – ’\0’ - do Código ASCII. Por isso, e preciso declarar vetores de caracteres com um elemento a mais que o tamanho real da string. Por exemplo, na declaração da variável str de 10 elementos: char str[11]; N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 10 Strings - Inicialização Exemplos (o ‘/0’ é inserido automaticamente pelo compilador): char time[6] = “VASCO”; char rango[9] = “feijoada”; char cor[6] = {“preto”} char cidade[10] = {“Fortaleza”}; N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 11 Strings - Características O identificador de uma variável string sem referência a qualquer índice (isto é, sem os colchetes) indica o endereço inicial da string na memória. O caractere ´\0´ indica o final da string. Exemplo: Na memória, uma string “UNIFOR” do programa abaixo é armazenada da seguinte forma: N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 12 int main(void) { char n[7] = “UNIFOR“; printf(“%s\n”, n); return 0; } n[0] ‘U’ 0x3AC9 n[1] ‘N’ 0x3ACA n[2] ‘I’ 0x3ACB n[3] ‘F’ (0x00) 0x3ACC n[4] ‘O’ 0x3ACD n[5] ‘R’ 0x3ACE n[6] ‘\0’ 0x3ACF n Podemos afirmar que n ≡ &n[0]. Strings A biblioteca padrão string da linguagem C contém várias funções de manipulação de strings. Para usar essas funções, o seu programa deve incluir a biblioteca: #include <string.h> Não é possível atribuir a uma variável string uma string, ou comparar duas strings via operadores ==, >, >=, < ou <=. Isto deve ser feito somente através das funções da string.h. N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 13 Funções para manipulação de strings N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 14 função descrição strlen(s1) Retorna o tamanho de s1 (sem o ´\0´) strcpy(s1, s2) Copia s2 (string origem) em s1 (string destino) strcnpy(s1, s2, n) Copia s2 em s1, até n caracteres strcat(s1, s2) Concatena s2 ao final de s1 strncat(s1, s2, n) Concatena s2 ao final de s1, até n caracteres strcmp(s1, s2) Retorna zero, se s1==s2; negativo, se s1<s2; positivo, se s1>s2 strcmp(s1, s2, n) Compara apenas os n primeiros caracteres de s1 e s2 Strings - Exemplos Ler duas strings e verificar se são iguais ou diferentes. N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 15 #include <string.h> int main(void) { char str0[80], str1[80]; printf("Digite a primeira string: "); scanf("%s", str0); printf("Digite a segunda string: "); scanf("%s", str1); if(!strcmp(str0, str1)) printf("As strings são iguais.\n"); else printf("As strings são diferentes.\n"); return 0; } Exercício 1. Faça uma função que receba como parâmetro de entrada uma frase (de até 100 caracteres) e uma letra, e retorne a quantidade de vezes que esta letra aparece na frase. Escreva também o programa principal que chama a função. N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 16 Dúvidas? N 5 7 5 - A lg o ri tm o s e P ro gr am aç ão d e C o m p u ta d o re s 17
Compartilhar