Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos e Programação I Aula 9 – Notas de aula Strings. - Strings, cadeias ou sequencias de caracteres Strings são vetores de caracteres (char). São também chamados de matrizes unidimensionais. Toda string é terminada em nulo. Nulo é representado por ‘\0’(lê-se barra zero). Por conter este terminador, vetores de caracteres são declarados com um caractere a mais para armazerna o ‘\0’. Por exemplo, se desejarmos armazenar uma string com 20 caracteres, deve ser declarada como: char nome[21]; Uma constante string é uma sequência de caracteres entre aspas: “Isto é uma constante string” Leitura de strings scanf(“%s”, nome); ou gets(nome); // neste caso usar o cabeçalho #include <string.h> Exibição de strings printf(“%s”, nome); ou puts(nome); //neste caso usar o cabeçalho #include <string.h> Inicialização de Strings: Com lista de valores: tipo nome[tamanho1] = {lista-de-valores} Com uma constante string: char nome[tamanho] = “string”; isto é idêntico a char str[tamanho] = {‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’, ‘\0’}; Sem especificar tamanho: char s1[] = “primeiro texto\n”; char s2[] = “segundo texto”; Na leitura de strings com scanf, não se deve colocar o símbolo & antes do nome da variável, pois o próprio nome da string contém o endereço. Exemplo de manipulação de strings: #include <stdio.h> void main(void) { char Palavra[20]; int i; printf("Digite UMA palavra qualquer: "); scanf("%s",Palavra); printf(“Palavra escrita verticalmente: \n”); for(i=0;Palavra[i] != '\0'; i++){ printf("%c\n",Palavra[i]); } printf("Palavra digitada: %s\n",Palavra); } O que imprimirá na tela a execução do seguinte código em C? #include <stdio.h> void main(void) { char a[20]; int i; printf("Digite UMA palavra qualquer: "); scanf("%s",a); while(a[i]!=’\0’){ printf(“%c\n”, a[i]); i++; } Uso do ‘\0’ como terminador de uma string. Neste exemplo, são contadas quantas letras a palavra digitada possui. #include<stdio.h> void main(void) { int i; char string[20]; printf(“Digite UMA palavra:”); scanf("%s",string); for(i=0; string[i]; i++); printf(“\nA palavra %s tem %d letras", string, i); } Uso do ‘\0’ para “truncar” uma string. Neste exemplo, a palavra é cortada na letra a. #include<stdio.h> void main(void) { char str[20]; int i; scanf("%s", str); for(i=0; str[i]!='a' && str[i]; i++); if (str[i]=='a') { str[i] = '\0'; printf ("Palavra cortada no primeiro 'a': %s\n", str); } else printf("Não há letra 'a' na palavra %s\n", str); } Algumas Funções de Manipulação Strings da biblioteca string.h Incluir o cabeçalho #include <string.h> Nome Função strcpy(s1,s2) Copia s2 para s1 strcat(s1,s2) Concatena s2 ao final de s1 strlen(s1,s2) Retorna o tamanho de s1 strcmp(s1,s2) Retorna 0 (falso) se s1=s2; menos que 0 se s1<s2; maior que zero se s1>s2. strchr(s1,ch) Retorna um ponteiro para a primeira ocorrência de ch em s1 strstr(s1,s2) Retorna um ponteiro para a primeira ocorrência de s2 em s1 Leituras e exercícios: EVARISTO, Jaime. Aprendendo a programar programando na linguagem C. Maceió: Vivali, 2007. SCHILDT, Herbert. C completo e total. São Paulo: Makron Books, 1997. CORMEN, Thomas H et al. Algoritmos: teoria e prática. Rio de Janeiro: Campus, 2002.
Compartilhar