Prévia do material em texto
ECT1203 Linguagem de Programação 2012.2 Prof. Aquiles Burlamaqui Prof. Luiz Eduardo Cunha Leite Aula 09 – 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 • Cadeia de caracteres • Pode ser representado por um vetor de caracteres (matriz unidimensional) • Terminada por \0 (nulo ou zero) Lendo e escrevendo char nome[50]; //declarando um string cin >> nome; //lendo cout << nome; //escrevendo Lendo e escrevendo • Outras formas de ler e escrever: • Para usar gets e puts, é necessário incluir o arquivo de cabeçalho cstdio • gets coloca o ‘\0’ no final do string • puts pula uma linha (coloca o ‘\n’ no final) String – Funções de cstring • strcpy(s1, s2) ▫ Copia s2 em s1 • strcat(s1, s2) ▫ Concatena s2 ao final de s1 • strlen(s1) ▫ Retorna o tamanho de s1 • strcmp(s1, s2) ▫ Retorna 0 se s1 e s2 forem iguais; menor que 0 se s1 < s2; maior que 0 se s1 > s2 strcpy #include <iostream> #include <cstring> #include <cstdio> using namespace std; int main() { char nomeA[50]; char nomeB[50] = "Silva"; strcpy(nomeA,"Joao"); puts(nomeA); strcpy(nomeA,nomeB); puts(nomeA); return 0; } strcpy(s1, s2) copia s2 em s1 nomeA passa a ser “Joao” nomeA passa a ser “Silva” #include <iostream> #include <cstring> #include <cstdio> using namespace std; int main() { char nomeA[50] = “Joao”; char nomeB[50] = “ Silva"; strcat(nomeA,nomeB); puts(nomeA); return 0; } strcat strcat(s1, s2) concatena s2 ao final de s1 nomeA passa a ser “Joao Silva” strlen #include <iostream> #include <cstring> #include <cstdio> using namespace std; int main() { char nomeA[50] = "Joao"; char nomeB[50] = " Silva"; puts(nomeA); cout <<"Tamanho de nomeA: “<<strlen(nomeA)<< endl; puts(nomeB); cout <<"Tamanho de nomeB: “<<strlen(nomeB)<< endl; strcat(nomeA,nomeB); puts(nomeA); cout <<"Tamanho de nomeA depois do strcat: ” <<strlen(nomeA)<< endl; return 0; } strlen(s) retorna o tamanho de s strcmp strcmp(s1,s2) retorna 0 se s1 = s2; menor que 0 se s1 < s2; maior que 0 se s1 > s2 #include <iostream> #include <cstring> #include <cstdio> using namespace std; int main() { char nomeA[] = "ect"; char nomeB[] = "ECT"; char nomeC[] = "et"; char nomeD[] = "ect"; cout <<“strcmp(ect,ECT) “ <<strcmp(nomeA,nomeB)<< endl; cout <<"strcmp(ect,et) ” <<strcmp(nomeA,nomeC)<< endl; cout <<"strcmp(ect,ect) ” <<strcmp(nomeA,nomeD)<< endl; return 0; } 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).