Академический Документы
Профессиональный Документы
Культура Документы
Vector de caracteres;
O ltimo caracter da string o caracter \0.
Programao II EE 2009/2010 1
Strings: Declarao
char nome[MAX];
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];
strcpy(s2,s1);
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
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
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);
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.
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
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
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
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