Вы находитесь на странице: 1из 16

Cadeias de Caracteres

Problema : Escreva um programa em linguagem C que l uma palavra da entrada e imprime o nmero de caracteres desta palavra.

Cadeias de Caracteres
Dvida : Quando parar de ler os caracteres da palavra?

Cadeias de Caracteres
Definio : Cadeias de caracteres (Strings) so seqncias de letras, nmeros ou smbolos onde o ltimo caracter o caracter \0 (da mesma famlia do \n, \t ... ). Na linguagem C utilizamos vetores do tipo char para armazenar cadeias de caracteres. Ex.: char vetor[10] = casa;

Cadeias de Caracteres
Como usar : Par ler ou para imprimir na tela uma cadeia de caracteres, utilizamos %s como parmetro das funes scanf e printf. Ex.: char vetor[10]; printf(Entre com seu nome: ); scanf(%s, vetor); printf(O seu nome eh: %s, vetor); A funo scanf, quando utilizada com o parmetro %s l todos os caracteres at encontrar um caracter igual a espao ou fim de linha.

Cadeias de Caracteres
Pergunta : Qual o tamanho do menor vetor que devemos declarar para armazenar uma cadeia de caracteres com 10 letras?

Cadeias de Caracteres
Exerccio : Escreva um programa em linguagem C que l uma palavra da entrada e imprime o nmero de caracteres desta palavra.

Cadeias de Caracteres
Soluo :
#include <stdio.h> int main() { char vetor[100]; int i, n; printf("Entre com a palavra: "); scanf("%s", vetor); i = 0; n = 0; while(vetor[i++] != '\0') n++; printf("O numero de caracteres eh %d", n); return 0; }

Cadeias de Caracteres
Funes Importantes (string.h): strlen Retorna o nmeros de caracteres da cadeia de caracteres, sem contar o \0. Ex.: strlen(casa") == 4 strcmp Compara caracter a caracter duas cadeias e retorna o resultado dessa comparao. Ex.: strcmp(casa, carro) == 1 strcmp(casa, casa) == 0 strcmp(carro, casa") == -1

Cadeias de Caracteres
Pergunta : Qual o valor retornado na chamada da seguinte funo:

strcmp(Casa, carro) == ?

Cadeias de Caracteres
Funes Importantes (string.h): strcmpi Compara caracter a caracter duas cadeias ignorando se as letras so maisculas ou minsculas, e retorna o resultado dessa comparao. Ex.: strcmpi(Casa, carro) == 1 strcmpi(Casa, cASa) == 0 strcmpi(caRro, casA") == -1 strcpy Copia uma string para dentro de outra. Ex.: strcpy(vetor, carro); strcpy(vetor2, vetor);

Cadeias de Caracteres
Funes Importantes (string.h): strcat Concatena duas strings, a primeira string recebe o seu contedo seguido do contedo da segunda string. Ex.: strcpy(vetor, uva + ); strcat(vetor, banana + ); strcat(vetor, pera");

Cadeias de Caracteres
Exerccio : Escreva uma funo em linguagem C que recebe uma cadeia de caracteres de tamanho mximo 100, e retorna 1 se esta cadeia uma palndrome e zero caso contrrio.

P.s.: Uma palavra dita ser palndrome se a seqncia de seus caracteres da esquerda para a direita igual a seqncia de seus caracteres da direita para a esquerda. Ex.: arara

Cadeias de Caracteres
Soluo :
int palindrome(char palavra[100]) { char aux[100]; int i, n; n = strlen(palavra); for( i = 0; i < n; i++ ) aux[i] = palavra[n i - 1]; aux[n] = \0; if( strcmp(palavra, aux) == 0 ) return 1; else return 0; }

Cadeias de Caracteres
Exerccio : Escreva um procedimento em linguagem C que recebe 3 cadeia de caracteres de tamanho mximo 50, e as imprime na tela em ordem alfabtica.

Cadeias de Caracteres
Soluo : void ordem(char a[50], char b[50], char c[50]) { if( strcmp(a, b) > 0 ) { if(strcmp(b, c) > 0 ) printf("%s,%s,%s", a,b,c); else { if( strcmp(a, c) > 0 ) printf("%s,%s,%s", a,c,b); else printf("%s,%s,%s", c,a,b); } continua no prximo slide

Cadeias de Caracteres
Continuao : } else { if(strcmp(c, a) > 0 ) printf("%s,%s,%s", b,c,a); else { if(strcmp(b, c) > 0 ) printf("%s,%s,%s", b,a,c); else printf("%s,%s,%s", c,b,a); } }

Вам также может понравиться