Vous êtes sur la page 1sur 4

Manipulao de Strings em C Prof.

Gustavo Campos Menezes Aula: 01 char *nome; nome= Joo Carlos de Oliveira Andrade Na linguagem C, uma string um vetor unidimensional de elementos de caracteres ASCII, sendo que o ltimo destes elementos o caracter especial `\0`. OBS: Em C, se voc for declarar uma varivel que armazena 10 caracteres, voc deve declarar: char nome[11] Pois o ltimo caracter deve ser terminado com nulo `\0`. Funes bsicas de manipulao de Strings: Obs: utilizar a biblioteca string.h strcpy(s1,s2) strcat(s1,s2) strlen(s1) strcmp(s1,s2) strchr(s1,ch) strstr(s1,s2) strupr(str) strlwr(str) * Mais detalhes sobre strcmp.... Compara duas strings e devolve 0 se elas forem iguais. Se s1 for lexicograficamente (alfabeticamente) maior que s2, ento a funo devolver um nmero positivo; se s1 for menor que s2, a funo devolver um nmero negativo. Exemplo: validao de senha: (seja a senha de acesso igual a: 7AX3yz) char senha[8]; gets(senha); if (strcmp (senha , 7AX3yz) = = 0) printf (Senha correta!!!); else printf (Senha incorreta!!); Copia s2 em s1; Concatena s2 ao final de s1; Retorna o tamanho de s1; * Retorna um ponteiro para a primeira ocorrncia de CH em s1. Retorna um ponteiro para a primeira ocorrncia de s2 em s1. Converte os caracteres de str para maisculo; Converte os caracteres de str para minsculo.

Observaes: 1. bola lexicograficamente maior que rvore pois, apesar de possuir menos letras, ocupa posio posterior se as palavras forem ordenadas alfabeticamente (b maior que a); 2. a funo strcmp faz distino entre letras maisculas e minsculas. No exemplo acima, a senha 7ax3yz seria considerada incorreta. Se quisermos ignorar essa diferena, devemos utilizar a funo stricmp

Exemplo de cdigo: # include <stdio.h> # include <string.h> # include <stdlib.h> int main() { char s1[80],s2[80]; printf("Informe a Primeira String: \n"); gets(s1); printf("Informe a Segunda String: \n"); gets(s2); printf("Os Comprimentos : %d %d\n",strlen(s1),strlen(s2)); if (!strcmp(s1,s2)) printf("As strings so iguais \n"); else printf("As strings no so iguais... \n"); strcat(s1,s2); printf("%s\n",s1); strcpy(s1,"Isso um teste. \n"); printf(s1); if (strchr("alo",'o')) printf("o est em alo \n"); if (strstr("ola aqui","ola")) printf("ola encontrado"); system("pause"); }

Matrizes de Strings Para criar uma matriz de strings, necessrio utilizar uma matriz bidimensional de caracteres. O tamanho do ndice esquerdo indica o nmero de strings e o tamanho do ndice do lado direito especifica o comprimento mximo de cada string. O cdigo abaixo declara uma matriz de 30 strings , cada uma com comprimento de 79 caracteres: char str_array[30] [80]; Para acessar uma matriz individual: gets(str_array[2]); O comando gets adiciona uma string na terceira linha da matriz unidimensional. O comando acima idntico ao abaixo: gets(&str_array[2][0]); # include <string.h> # include <stdio.h> # include <stdlib.h> # define MAX 100 # define LEN 80 /* Exemplo de editor de textos simplificado..... */ char text[MAX][LEN]; int main() { int t,i,j; printf("Digite uma linha vazia para sair. \n"); for (t=0; t < MAX; t++) { printf("%d: ",t); gets(text[t]); if (!*text[t]) break; } for (i=0; i < t; i++) { for (j=0; text[i][j]; j++) putchar(text[i][j]); putchar('\n'); } system("pause"); }

Exerccio 1) Fazer um programa em linguagem C que leia um conjunto de 15 palavras, cada uma contendo no mximo 20 caracteres (as palavras no possuem espao em branco) e: a. Imprima a palavra com maior nmero de caracteres; b. Imprima a menor palavra em termos lexicogrficos; c. Imprima o nmero de vezes que aparece a letra A (seja maiscula ou minscula) contando entre todas as palavras;

Vous aimerez peut-être aussi