Buscar

Aula22 - Strings

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ECT1203 Linguagem de Programação 
2014.2 
Profa. Caroline Rocha 
 
Aula 22 – Strings 
Universidade Federal do Rio Grande do Norte 
Escola de Ciências e Tecnologia 
Hora de silenciar o celular 
• Manter o celular sempre desligado/silencioso quando 
estiver em sala de aula 
• Nunca atender o celular em sala de aula 
Objetivo da aula 
Apresentar Strings em C++: 
▫ Leitura e Escrita de Strings 
▫ Funções de manipulação de String 
▫ Exemplos de utilização de String 
String 
• Sequência de caracteres 
• Importante em muito contextos da programação 
• Constantes string são representados por uma 
sequência de caracteres entre aspas duplas: 
“Alo Mundo” “xyz 123 *$^&!” 
“V” “Pedro Alvares Cabral” 
Strings em C 
• Não existe o tipo string 
• São armazenadas como vetores de caracteres 
• Os vetores podem ser de qualquer tamanho 
• Um delimitador indica o fim da string: o caractere ‘\0’ 
“Alo Mundo” 
A l o M u n d o \0 
Variáveis string 
• Deve-se alocar um vetor grande o bastante para 
guardar a string, incluindo o delimitador ‘\0’ 
• Com inicialização: 
 
 
 
char str1[4] = {‘A’,‘l’,‘o’,‘\0’} 
char str2[4] = “Alo”; 
char str3[] = “Alo”; 
Exemplo 1 
... 
int main(){ 
 char s[] = ”Alo Mundo"; 
 
 cout << s << endl; 
 
 for (int i = 0; i < 9; i++){ 
 cout << s[i] << ","; 
 } 
 
 cout << endl; 
... 
 
Alo Mundo 
A,l,o, ,M,u,n,d,o, 
 
Exemplo 2 
... 
 int i; 
 char s[] = “Alo Mundo”; 
 
 cout << s << endl; 
 
 i = 0; 
 while(s[i] != '\0') 
 { 
 cout << s[i] << ","; 
 i++; 
 } 
 cout << endl; 
 
 cout << "s[" << i << "] = " << int(s[i]) << endl; 
... 
Alo Mundo 
A,l,o, ,M,u,n,d,o, 
s[9] = 0 
 
Exemplo 3 
... 
 char s[] = “Alo Mundo”; 
 cout << “String = “ << s << endl; 
 
 s[0] = ‘B’; 
 s[1] = ‘o’; 
 s[2] = ‘m’; 
 cout << “String = “ << s << endl; 
 
 s[3] = ‘\0’; 
 cout << “String = “ << s << endl; 
... 
String = Alo Mundo 
String = Bom Mundo 
String = Bom 
• Cadeias podem conter caracteres de espaços, mas não 
podemos usar cin>> para ler cadeias com espaços. 
• Para isso, vamos usar cin.getline(s,n), onde s é 
um vetor de caracteres onde a string será armazenada e 
n é o número de caracteres lidos, incluindo ‘\0’. 
• Nesse caso, o caractere delimitador da leitura é ‘\n’. 
• Para outro caractere delimitador c, usa-se 
cin.getline(s,n,c). 
Lendo com espaços 
... 
char s[50]; 
cout << “Nome? ”; 
cin.getline(s, 50); 
cout << “Nome lido: ” << s << endl; 
 
cout << “Nome? ”; 
cin >> s; 
cout << “Nome lido: ” << s << endl; 
... 
Lendo com espaços 
Nome? Fulano de tal 
Nome lido: Fulano de tal 
Nome? Fulano de tal 
Nome lido: Fulano 
 char nome[50]; 
 gets(nome); //lendo uma string 
 puts(nome); //escrevendo uma string 
 
• A função gets também lê strings contendo espaços. 
• A função puts imprime o caractere ‘\n’ ao final da 
string, isto é, pula uma linha. 
• Para usar gets e puts, é necessário incluir o arquivo 
de cabeçalho cstdio 
Outras formas de ler e escrever 
• C++ fornece uma variedade de funções para executar 
diferentes tarefas. 
• Exemplos: 
▫ strlen(s) – calcula o tamanho de s 
▫ strcpy(s1,s2) - copia s2 em s1 
▫ strcat(s1,s2) - concatena s2 ao final de s1 
▫ strcmp(s1,s2) - compara s1 e s2 
• As funções estão definidas no arquivo de cabeçalho 
cstring 
Funções de string 
• retorna o tamanho da string s 
• conta o número de caracteres até ‘\0’ ser encontrado 
• não conta o caractere ‘\0’ 
• Exemplo: 
 char str[] = “Bom dia!”; 
 cout << “tam = ” << strlen(str) << endl; 
 
 
strlen(s) 
tam = 8 
• copia os caracteres (incluindo ‘\0’) da string origem 
para destino. 
• destino deve ter espaço suficiente para receber 
origem. 
• retorna a string destino. 
• Exemplo: 
 char A[50]; 
 char B[50] = "Silva"; 
 strcpy(A,"Joao"); 
 puts(A); 
 strcpy(A,B); 
 puts(A); 
 
 
strcpy(destino,origem) 
Joao 
Silva 
• similar a strcpy, mas a cópia termina após n 
caracteres 
strncpy(destino,origem,n) 
• Compara as strings s e t 
• retorna um valor baseado no primeiro caractere 
diferente nas duas cadeias: 
 menor que 0 (-1) 
▫ se o primeiro caractere diferente em s é menor que em t 
 maior que 0 (1) 
▫ se o primeiro caractere diferente em s é maior que em t 
 0 
▫ se as duas strings contêm os mesmos caracteres 
strcmp(s,t) 
• Exemplo: 
strcmp(“alo”,“alo”) – retorna 0 
strcmp(“blo”,“alo”) – retorna valor > 0 
strcmp(“Alo”,“alo”) – retorna valor < 0 
strcmp(“alo”,“alo mundo”) – retorna valor < 0 
strcmp(“casas”,“casal”) – retorna valor > 0 
 
• Expressão para determinar se duas strings s e t contêm 
os mesmos caracteres: 
!strcmp(s,t) 
 
strcmp(s,t) 
• strncmp(s1,s2,n) – compara os primeiros n 
caracteres 
• strcasecmp(s1,s2) – compara ignorando 
maiúsculas/minúsculas 
• strncasecmp(s1,s2,n) – compara os primeiros n 
caracteres ignorando maiúsculas/minúsculas 
 
Outras funções de comparação 
• concatena os caracteres da string fim ao final de 
inicio; 
• a string inicio deve ser suficientemente grande para 
receber fim; 
• retorna a string inicio. 
• Exemplo: 
char A[50] = “Joao”; 
char B[50] = “ Silva”; 
strcat(A,B); 
puts(A); 
 
strcat(inicio,fim) 
Joao Silva 
• similar a strcat mas concatena somente os n 
primeiros caracteres de fim em inicio. 
strncat(inicio,fim,n) 
Exercício 1 
• Faça um algoritmo para converter uma cadeia de 
caracteres de letras maiúsculas em letras minúsculas. 
Exercício 2 
• Dado o nome completo de uma pessoa imprimir apenas 
as iniciais seguidas cada uma de ponto e espaço. 
Exercício 3 
• Codifique um programa na linguagem C que leia uma 
string de tamanho x, leia outra string de tamanho y e 
depois concatene as duas em outra string de tamanho 
x+y. Concatenar significa unir as duas strings (não é 
permitido utilizar a função strcat). 
TABELA ASCII

Outros materiais