A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Profa. Maria Augusta Constante Puget

Apresentações semelhantes


Apresentação em tema: "Profa. Maria Augusta Constante Puget"— Transcrição da apresentação:

1 Profa. Maria Augusta Constante Puget
Programação II – Parte 7 Profa. Maria Augusta Constante Puget

2 Strings em C (1) Strings (Inglês) são cadeias ou sequências ordenadas de caracteres. A linguagem C, ao contrário de outras linguagens de programação, não possui um tipo de dados correspondente às strings; no lugar, usam-se matrizes unidimensionais (vetores) do tipo char. Em C, strings são vetores de caracteres terminados pelo caractere NULL ('\0'). Exemplo de declaração e inicialização dos elementos de uma string: char nome[] = {‘M', ‘a', ‘r', ‘i', ‘a', '\0'};

3 Strings em C (2) Há ainda uma notação abreviada que equivale à notação anterior e elimina a necessidade de colocar o caractere terminador: char nome[] = “Maria”; Assim como nos vetores, podemos acessar e modificar elementos individuais de uma string. Podemos também diminuir o tamanho de uma string: uma vez que a única marcação do tamanho é o terminador \0, colocar um terminador em outro local determinará o novo final da string. No entanto, aumentar o tamanho da string já é mais difícil.

4 A Função gets - Leitura de Strings em C (1)
Embora a função scanf possa ser usada pra se fazer a entrada de strings em um programa em C, a função gets (stdio.h) é mais conveniente. A função gets lê uma cadeia de caracteres do teclado enquanto não é pressionada a tecla ENTER. Todos os caracteres são armazenados na string e é incluído automaticamente o caracter NULL no final.

5 A Função gets - Leitura de Strings em C (2)
/* Exemplo de uso da função gets para leitura de string */ #include <stdio.h> #include <stdlib.h> int main(){ char nome[80]; char saudacao[] = "Saudacoes, "; printf("Digite o seu nome: "); gets(nome); printf("Ola, %s!\n", nome); printf("%s %s!\n", saudacao, nome); system("pause"); return 0; }

6 A Função puts - Escrita de Strings em C (1)
A função puts é o complemento da função gets. O propósito da função puts é imprimir uma única string por vez. Cada string impressa com puts termina por um caracter de nova linha. Isto é, as duas instruções seguintes têm o mesmo efeito: printf("%s\n",nome); puts(nome); /* Exemplo de uso da função puts para escrita de string */ #include <stdio.h> #include <stdlib.h> int main(){ char nome[80]; printf("Digite o seu nome: "); gets(nome); puts("Ola, "); puts(nome); system("pause"); return 0; }

7 Outras funções para manipulação de Strings (1)
A biblioteca padrão fornece várias funções úteis para manipular strings. Para usá-las, deve-se incluir o cabeçalho string.h no início dos seus arquivos. A função strlen retorna o tamanho, em caracteres, de uma string dada. /* Mostra o uso de strlen */ #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char nome[80]; int len; printf("Digite o seu nome: "); gets(nome); len = strlen(nome); printf("%s, o seu nome tem %i caracteres.\n", nome, len); system("pause"); return 0; }

8 Outras funções para manipulação de Strings (2)
A função strcat concatena uma cadeia de caracteres a outra, ou seja, acrescenta uma cadeia de caracteres ao final da outra. Ela recebe como argumentos dois endereços de variáveis do tipo char e concatena a segunda na primeira. /* Mostra o uso de strcat */ #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char nome[80], sobrenome[40]; printf("Digite o seu primeiro nome: "); gets(nome); printf("Digite o seu sobrenome: "); gets(sobrenome); strcat(nome, " "); strcat(nome, sobrenome); printf("O seu nome completo: %s.\n", nome); system("pause"); return 0; }

9 Outras funções para manipulação de Strings (3)
Se você tentar criar duas strings com o mesmo conteúdo e compará-las como faria com números, utilizando o operador relacional == verá que elas "não são iguais". Isso ocorre porque, na verdade, o que está sendo comparado são os endereços de memória onde estão guardadas as strings e não o seu conteúdo. Para comparar o conteúdo de duas strings, deve-se usar a função strcmp (ou suas variantes). Assim, para comparar a string s1 com a string s2, utiliza-se: strcmp(s1, s2)

10 Outras funções para manipulação de Strings (4)
O valor de retorno desta função é: Menor que zero se s1 for menor que s2; Igual a zero se s1 e s2 são iguais; Maior que zero se s1 for maior que s2. Pode parecer estranho dizer que uma string é menor ou maior que outra; na verdade essa comparação é entre a primeira letra que difere nas duas strings. Assim, se tivermos s1 = "abc" e s2 = "abd", diremos que s2 é maior que s1, pois na primeira posição em que as duas strings diferem, a letra em s2 é "maior". É importante notar que a comparação feita por strcmp distingue maiúsculas de minúsculas. Isto é, as strings "ABC" e "abc" não são iguais para essa função. As variantes mais usadas de strcmp são: strncmp - Compara apenas os n primeiros caracteres das duas strings, sendo n um terceiro argumento. stricmp - Compara duas strings sem distinção entre maiúsculas e minúsculas. A sintaxe é igual à de strcmp. Essa função não faz parte da biblioteca padrão, mas é comumente encontrada como extensão particular de várias delas.

11 Outras funções para manipulação de Strings (5)
Um exemplo que imprime o valor retornado por strcmp em várias situações: /* Mostra o uso de strcmp */ #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ printf("%i\n", strcmp("A", "A")); printf("%i\n", strcmp("A", "B")); printf("%i\n", strcmp("B", "A")); printf("%i\n", strcmp("casas", "casa")); system("pause"); return 0; }

12 Outras funções para manipulação de Strings (6)
A função strcpy copia o conteúdo de uma string para outra e coloca um terminador de string ao final da string copiada. Sua sintaxe é strcpy (destino, origem). /* Mostra o uso de strcpy */ #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char nome1[80], nome2[80]; printf("Digite um nome: "); gets(nome1); printf("Voce digitou: %s\n", nome1); strcpy(nome2, nome1); printf("Agora as duas strings tem o mesmo conteudo: %s, %s\n", nome1, nome2); system("pause"); return 0; }

13 Outras funções para manipulação de Strings (7)
As funções strncat(), strncmp(), e strncpy() são semelhantes, respectivamente a strcat(), strcmp(), e strcpy(). A diferença entre elas está no fato de que as primeiras recebem um terceiro argumento indicando o número de caracteres a processar. Por exemplo: A função strncat() concatena n caracteres da segunda cadeia na primeira. A função strncmp() compara os n primeiros caracteres das cadeias. A função strncpy() copia os n primeiros caracteres da segunda cadeia para a primeira.


Carregar ppt "Profa. Maria Augusta Constante Puget"

Apresentações semelhantes


Anúncios Google