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

Strings: Definio

 Vector de caracteres;
 O ltimo caracter da string o caracter \0.

Programao II EE 2009/2010 1
Strings: Declarao

char nome[MAX];

Nmero mximo de caracteres da string.


Ter em ateno que necessrio um espao para
armazenar o ltimo caracter da string, o caracter
\0

Nome do vector (ou string)


Tipo dos elementos do vector (ou string)
Programao II EE 2009/2010 2
Strings: Exemplo
char nome[10];
A N A M A R I A \0

0 1 2 3 4 5 6 7 8 9

ndice ou posio
char nome[15];
A N A M A R I A \0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Programao II EE 2009/2010 3
Strings
Declarao e inicializao:
char s[8]={B, o, m , , D, i, a, \0};
ou
char s[8]="Bom Dia";
ou
char s[ ]="Bom Dia";

B o m D i a \0

0 1 2 3 4 5 6 7

Programao II EE 2009/2010 4
Strings
Declarao e inicializao:
char s[8]={\0};
\0 \0 \0 \0 \0 \0 \0 \0

0 1 2 3 4 5 6 7

char s[8]={B,\0};

B \0 \0 \0 \0 \0 \0 \0

0 1 2 3 4 5 6 7

Programao II EE 2009/2010 5
Strings
char s1[20], s2[20];

s2=s1; Deve fazer-se, por exemplo:

strcpy(s2,s1);

s1=ol; Deve fazer-se, por exemplo:

strcpy(s1, "ol");
Programao II EE 2009/2010 6
Strings
Funes para leitura de strings a partir do
teclado:
 scanf(...);

 gets(...);

Programao II EE 2009/2010 7
Strings: Funo de leitura

scanf(...) l todos os caracteres


digitados a partir do teclado, at ser
digitado o caracter espao em branco,
o caracter tab ou o caracter mudana
de linha. No verifica o tamanho da
string.

Programao II EE 2009/2010 8
Strings

Exemplo:

char morada[30];
Ateno:
Caso seja digitado
Castelo Branco na string
fflush(stdin); morada apenas
armazenado Castelo
fica

scanf("%s", morada);
Especificador de formato varivel

Programao II EE 2009/2010 9
Strings
Exemplo:
scanf("%20s", morada);
Exemplo:
scanf("%[a-zA-Z] ", morada);
Exemplo:
scanf("%[^\n] ", morada);
Exemplo:
scanf("%10[^\n] ", morada);
Programao II EE 2009/2010 10
Strings: Funo de leitura
gets(...) l todos os caracteres digitados a
partir do teclado at ser digitado o caracter
mudana de linha. No verifica o tamanho da
string.

Exemplo:
char morada[30];

fflush(stdin);
gets(morada);
Programao II EE 2009/2010 11
Strings

Funes para escrita de strings no


cran:
 puts (...)
 printf (...)

Programao II EE 2009/2010 12
Strings
Exemplo:
char morada[30]="Leiria";

puts(morada);

varivel

Programao II EE 2009/2010 13
Strings
Exemplo:
char morada[30]="Leiria";

printf("%s", morada);

Especificador de formato varivel

Programao II EE 2009/2010 14
Strings livraria string.h
 int strcmp(char s1[ ], char s2[ ]);
 int strlen(char s[ ]);
 void strcpy(char sdestino[], char sorigem[ ]);
 void strcat (char s1[ ], char s2[ ]);

Programao II EE 2009/2010 15
Funes de manipulao de
caracteres livraria ctype.h
isalpha(...);
isdigit(...);
islower(...);
isupper(...);
isspace(...);
tolower(...);
toupper(...);
Programao II EE 2009/2010 16
Exerccios
 Elabore uma funo que receba como
parmetro uma string e devolva o nmero de
ocorrncias de um determinado caracter
nessa string.

 Elabore uma funo que receba como


parmetro uma string e devolva a posio em
que ocorre pela primeira vez um determinado
caracter na string. Se o caracter no existir
nessa string a funo deve devolver 1.
Programao II EE 2009/2010 17
Exerccios
 Elabore uma funo que permita efectuar a cpia de
uma string, convertendo todas as vogais da string
para letras maisculas.
 Elabore uma funo que permita copiar uma string
invertendo-a.
 Elabore uma funo que receba uma string e copie
todos os caracteres da string para outra, colocando
um espao em branco entre eles.
 Elabore uma funo que receba uma string e um
caracter e elimine esse caracter da string.

Programao II EE 2009/2010 18
Exerccios
 Elabore uma funo que recebe como parmetro uma string
contendo o nome completo de uma pessoa e coloque numa
outra string apenas o apelido da pessoa seguido do caracter , e
depois o nome prprio.
Exemplo: Ana Maria Sousa Gomes
Gomes, Ana

 Elabore uma funo que recebe como parmetro uma string


contendo o nome completo de uma pessoa e coloque numa
outra string apenas o nome prprio e o apelido.
Exemplo: Ana Maria Sousa Gomes
Ana Gomes

Programao II EE 2009/2010 19
Exerccios
 Elabore uma funo que recebe como
parmetro uma string contendo o nome
completo de uma pessoa e coloque numa
outra string apenas as iniciais do nome, em
maisculas, separadas pelo caracter .
Exemplo: Ana Maria Sousa Gomes
A.M.S.G.
Exemplo: ana maria sousa gomes
A.M.S.G.

Programao II EE 2009/2010 20
Matriz de strings
#define MAX_L 5
#define MAX_C 15
char m[MAX_L][MAX_C];
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

0
P a u l a S o a r e s \0

A n t n i o S i l v a \0
1
R i t a C o s t a \0
2
R u i M o n t e i r o \0
3
C a r l o s R e i s \0
4

Programao II EE 2009/2010 21
Matriz de Strings
Declarao e inicializao:
char m[3][5]={{\0}};
0 1 2 3 4

0 \0 \0 \0 \0 \0

1 \0 \0 \0 \0 \0

2 \0 \0 \0 \0 \0

Programao II EE 2009/2010 22
Matriz de Strings
Declarao e inicializao:
char m[3][5]={{B,\0}};
0 1 2 3 4

0 B \0 \0 \0 \0

1 \0 \0 \0 \0 \0

2 \0 \0 \0 \0 \0

Programao II EE 2009/2010 23
Matriz de strings
#define MAX_L 5
#define MAX_C 15
char m[MAX_L][MAX_C]={{"Paula Soares"}, {"Antnio Silva"},
{"Rita Costa"}, {"Rui Monteiro"}, {"Carlos Reis"}};
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

0
P a u l a S o a r e s \0

A n t n i o S i l v a \0
1
R i t a C o s t a \0
2
R u i M o n t e i r o \0
3
C a r l o s R e i s \0
4
Programao II EE 2009/2010 24
Exerccio

a) Elabore uma funo que permita guardar numa matriz N


strings .
b) Elabore uma funo que permita listar no cran as N
strings existentes numa matriz.
c) Elabore uma funo que permita pesquisar se uma
determinada string existe numa matriz. Caso a string
exista na matriz a funo deve devolver a linha em que a
mesma se encontra. Caso no exista deve devolver 1.
d) Elabore um programa que guarde muma matriz, N strings.
De seguida mostre no cran as N strings e verifique se
uma determinada string existe na matriz.

Programao II EE 2009/2010 25
Exerccio
Elabore um programa que permita
executar as opes:
1 Inserir uma string na matriz
2 Listar todas as strings da matriz
3 Pesquisa string
4 Mostra letras iniciais das palavras das
strings
0 Sair
Programao II EE 2009/2010 26
Exerccio

Para tal poder utilizar as funes


elaborada em exerccios anteriores e
dever ainda elaborar uma funo
que permita:
a) Ler uma string a partir do teclado
e inserir a string na matriz de strings.

Programao II EE 2009/2010 27
Ordenao de vectores
unidimensionais
O principal objectivo da ordenao de
vectores permitir pesquisas mais
rpidas.

Programao II EE 2009/2010 28

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