Vous êtes sur la page 1sur 33

ALGORITMOS E ESTRUTURA DE DADOS

PROFESSOR Sergio Souza Costa Home: https://sites.google.com/site/skosta/ Email: skosta@gmail.com

LINGUAGEM C
Vetores Strings

engenhariaeletricab2011@hotmail.com

Introduo
Tipos de dados em C
o Primitivos: char, int, float, double o Compostos:
Homogneos: vetores e matrizes Heterogneos: registros (struct)

Introduo
Vetores so variveis homogneas compostas
unidimensionais O incio de um vetor em Linguagem C denotado pelo valor do ndice = 0 Exemplo de atribuio: a[0] = 10 Declarando vetores
o int x[5]; o float x[5]; o char x[5];
x[0] x x[1] x[2] x[3] x[4]

LINGUAGEM C

Preenchendo vetores
Algoritmo Declare y[5] Numrico Declare i Numrico Para i1 at 5 Faa Incio Escreva Digite o nmero:, i Leia y[i] Fim Fim

LINGUAGEM C

LINGUAGEM C

Exemplo

Exerccio Resolvido 1
Construa um algoritmo e um programa em Linguagem C que
preencha um vetor com nove nmeros e calcule a mdia entre eles
Algoritmo Declare i, x[9], total, media numrico total 0 Para i 1 At 9 Faa Inicio Leia x[i] total total + x[i] Fim media total / 9 Escreva Media = , media Fim

LINGUAGEM C

Exerccio Resolvido 1

LINGUAGEM C

TRABALHANDO COM STRINGS

Introduo
Em Linguagem C Strings (Literal) so declaradas como
vetores de char

LINGUAGEM C

Como so armazenadas em um vetor, o final de uma cadeia


de caracteres identificado com o valor nulo ou "\0"

Dessa forma, deve-se sempre declarar o vetor do tamanho


necessrio mais um (para o valor nulo)

Exemplo: char palavra[7]


[0] valor C [1] A [2] D [3] E [4] I [5] A [7] \0

Inicializao
Uma cadeia de caracteres pode ser adicionada no momento
da declarao Exemplo: char nome[]="Testando!"

LINGUAGEM C

Atribuindo
A atribuio de strings uma varivel no pode ser feita de
forma direta A instruo palavra = "Testando2!" invlida A atribuio deve ser feita atravs da funo strcpy(varivel,string) A funo strcpy exige a utilizao da biblioteca string.h

LINGUAGEM C

At 9 caracteres!!!

Atribuindo
A funo strcpy tambm utilizada para passar o contedo de
texto de uma varivel para outra

LINGUAGEM C

Entrando Dados
Utilizar a funo scanf para entrar dados no adequado
quando a string possui espaos em branco, pois a funo scanf descarta os espaos

LINGUAGEM C

Entrando Dados
1 Soluo:

LINGUAGEM C

Entrando Dados
Uso de expressos regulares
scanf(%[^\n]s, nome);
o %s
Leitura de string

LINGUAGEM C

o ^
Enquanto for diferente

o \n
Do enter

Entrando Dados
2 Soluo: Utiliza-se a funo gets(varivel)

LINGUAGEM C

Concatenando strings
Concatenar strings significa juntar o contedo de uma string
com outra A funo strcat(str1,str2) concatena o contedo de str2 em srt 1

LINGUAGEM C

Comparando Strings
Para verificar se uma string igual a outra utiliza-se a
instruo var = strcmp(str1, str2) A varivel var recebe um nmero inteiro de acordo com o resultado da comparao
o 0 (zero) se as duas cadeias forem iguais o <0 (menor que zero) se str1 for alfabeticamente menor que str2 o >0 (maior que zero) se str2 for alfabeticamente menor que str1

LINGUAGEM C

Comparando Strings
Exemplo

LINGUAGEM C

Descobrindo a Quantidade de Caracteres


Para descobrir quantos caracteres tem uma string deve-se
utilizar a funo strlen(str) A fuo retorna a quantidade exata de caracteres de uma cadeia

LINGUAGEM C

Alterando Caracteres Dentro de uma String


A funo strset(str1,ch) altera todos os caracteres da string str1
pelo caractere ch, j a funo strnset(str1,ch,n) substitui os n primeiros caracteres da string str pelo caractere ch

LINGUAGEM C

Funes de Strings e de Caracteres Biblioteca <string.h>


Funo strlen(str)
Devolve o comprimento da string terminada por um nulo

apontada por str. O nulo no contado. Exemplo


O fragmento de cdigo a seguir escreve 3 na tela

#include <stdio.h> #include <string.h> main(){ printf(%d, strlen(alo)); }

Funes de Strings e de Caracteres Biblioteca <string.h>


Funo strcat(str1, str2)
Toma dois endereos de strings como argumento e copia a

segunda string ao final da primeira e esta combinao gera uma nova string. A segunda string no alterada. Cuidado: esta funo no verifica se a segunda string cabe no espao livre da primeira. Exemplo
str1[25]=Aula str2[25]=algoritmos strcat(str1, str2) str1 == Aulaalgoritmos

Funes de Strings e de Caracteres Biblioteca <string.h>


Funo strcmp(str1, str2)
Compara lexicograficamente duas strings e devolve um inteiro

baseado no resultado, como mostrado aqui:


Valor Menor que zero Zero Maior que zero Significado str1 alfabeticamente menor que str2 str1 igual a str2 str1 alfabeticamente maior que str2

Exemplo possvel usar esta funo para verificao de senhas. A rotina que segue devolve -1 em caso de falha e 0 em caso de sucesso.

Funes de Strings e de Caracteres Biblioteca <string.h>


Funo strcmp(str1, str2)
password(void){ char s[80]; printf(digite a senha); gets(s);

if(strcmp(s, pass)==0){ printf(Acesso Liberado); return 0; } return -1;


}

Funes de Strings e de Caracteres Biblioteca <string.h>


Funo stricmp(str1, str2)
uma variante da funo strcmp(); Seu funcionamento o mesmo, diferenciando-se apenas por no

fazer distino entre letras maisculas e minsculas;


Funo strcpy(str1, str2)
Copia a string str1 para a string str2, sobrescrevendo o valor de

str1; str2 no alterada; Exemplo:

Funes de Strings e de Caracteres Biblioteca <string.h>


Funo strcpy(str1, str2)
str1[20]=Aula; str2[20]=Algoritmos; puts(str1); strcpy(str1, str2); puts(str1);
Aps a execuo da funo strcpy(), o valor de str1 passa a ser

Algoritmos;

Funes de Strings e de Caracteres Biblioteca <ctype.h>


Funo toupper(ch)
Devolve o equivalente maisculo de ch se ch uma letra, caso

contrrio, ch devolvido sem alterao.


Funo tolower(ch)
Devolve o equivalente minsculo de ch se ch uma letra, caso

contrrio, ch devolvido sem alterao.


Funo isalpha(ch)
Devolve um valor diferente de zero se ch for uma letra do

alfabeto; caso contrrio, devolver zero.

Funes de Strings e de Caracteres Biblioteca <ctype.h>


Funo isalnum(ch)
Devolve um valor diferente de zero se ch for uma letra ou um

dgito; se o caractere no for alfanumrico, devolver zero.


Funo isdigit(ch)
Devolve um valor diferente de zero se ch for um dgito (0 a 9);

caso contrrio, devolver zero.


Funo islower(ch)
Devolve um valor diferente de zero se ch for uma letra

minscula; caso contrrio, devolver zero.

Funes de Strings e de Caracteres Biblioteca <ctype.h>


Funo isspace (ch)
Devolve um valor diferente de zero se ch for um espao,

tabulao horizontal, tabulao vertical, retorno de carro ou caractere de nova linha; caso contrrio, devolver zero.
Funo isupper(ch)
Devolve um valor diferente de zero se ch for uma letra

maiscula; caso contrrio, devolver zero.

Referncias
ASCENIO, A. F. G.; de CAMPOS, E. A. V. Fundamentos de Programao de Computadores, 2 ed. So Paulo: Prentice Hall, 2008. SENNE, E. L., Primeiro Curso de Programao em C. 3 Edio, Visual Books, 2009.

LINGUAGEM C

SCHILDT, Herbert. C Completo e Total. 3. Ed. So Paulo:


Makron Books, 1995.

Vous aimerez peut-être aussi