manipulação de strings marco reis. novo arquivo adicione manipulacaodestrings.c ao projeto. cada...

18
Manipulação de Strings Marco Reis

Upload: internet

Post on 17-Apr-2015

104 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

Manipulação de StringsMarco Reis

Page 2: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

Novo arquivo

• Adicione ManipulacaoDeStrings.c ao projeto.• Cada projeto pode ter apenas um método

main. • Como outros programas podem já ter esse

método, comente todas as linhas com /* */, ou mude o nome para main1, main2, main3, … , main99.

Page 3: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

Dica

• O código a seguir utiliza a estrutura de funções para organização.

• Pode ser utilizada livremente a programação sem funções, ou seja, utilize os blocos de código diretamente dentro do main.

• Atenção redobrada neste caso para a organização, identação e legibilidade do código.

Page 4: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

Função getchar()

• Função básica para entrada de caracteres.• Bastante prática e flexível//#include <limits.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>//int main() { printf("Informe um caracter.\n"); char caracter = getchar(); printf("Voce digitou: %c\n", caracter); printf("Codigo ASCII de %c: %d", caracter, caracter); return EXIT_SUCCESS;}

Page 5: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

Tudo junto

//Diretivas#include <limits.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>

//Declaracao das funcoesvoid RecuperaComGetChar();

//mainint main() {

RecuperaComGetChar();return EXIT_SUCCESS;

}

//Implementacoesvoid RecuperaComGetChar() {

printf("Informe um caracter.\n");char caracter = getchar();printf("Voce digitou: %c\n", caracter);printf("Codigo ASCII de %c: %d", caracter, caracter);

}

Page 6: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

Outra função: toupper()

void ImprimeComPutChar() { printf("Informe um caracter.\n"); char caracter = getchar(); char caracterMaiusculo; printf("Voce digitou: "); // putchar(caracter); caracterMaiusculo = toupper(caracter); printf("\nAgora, maiusculo: "); putchar(caracterMaiusculo); // if(islower(caracter)) { printf("\nO caracter eh minusculo"); }}

Obs: não se esqueça de declarar essa função no inicio do programa e chamá-la no main.

Page 7: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

Exemplo

//Declaracao das funcoesvoid RecuperaComGetChar();void ImprimeComPutChar();

//mainint main() { //RecuperaComGetChar(); ImprimeComPutChar(); return EXIT_SUCCESS;}

Page 8: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

Constantes

• Utiliza as constantes para dar mais clareza ao código.

void ImprimeTodosOsCaracteres() { char c; c = CHAR_MIN; //Constante pre-definida while (c != CHAR_MAX) { printf("%c\n", c); c = c + 1; }}

Page 9: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

gets e puts

void RecuperaVariosCaracteres() {char frase[80];printf("Informe uma frase: \n");//Recupera uma frase//scanf - recupera uma palavra//Faca o teste e veja a diferencagets(frase);printf("Frase: %s\n", frase);//ouprintf("Podemos imprimir assim: ");puts(frase);

}

Page 10: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

Exemplo: alfabeto

void ImprimeAlfabeto() {char c;c = 'a';while (c <= 'z') {

printf("value %d char %c\n", c, c);c = c + 1;

}}

Page 11: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

Capitulação

void TrocaCapitulacao() {printf("Digite um caracter:\n");char c = getchar();printf("Voce digitou ->%c\n\n", c);

//Imprime o inverso da capitulacao atualif (isupper(c)) {

putchar(tolower(c));} else if (islower(c)) {

putchar(toupper(c));}

}

Page 12: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

ImprimePalavra

void ImprimeCaracteresDeUmaPalavra() {char palavra[20];printf("Informe a palavra:\n");scanf("%s", palavra);int tamanho = (int) sizeof(palavra);printf("Tamanho do array: %d\n", tamanho);int i;for (i = 0; i < sizeof(palavra); i++) {

//Se o espaco do array estiver em branco, termina a execucao//Experimente remover o bloco e veja a diferenca if (palavra[i] == 0) {

break;}//Imprime cada um dos caracteres, caso nao seja caracter em brancoprintf("->%c\n", palavra[i]);

}}

Page 13: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

ImprimeComUpper

void ImprimeUpper() {char palavra[20];printf("Informe a palavra:\n");// Teste com scanfgets(palavra);int i = 0;for (i = 0; i < sizeof(palavra); i++) { //Mais uma vez, se o caracter for fim da linha, termina a execucao

if (palavra[i] == 0) {break;

}printf("%c", toupper(palavra[i]));

}}

Page 14: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

Comparação

void ComparaStrings() {char primeiraPalavra[80];char segundaPalavra[80];printf("Digita a primeira palavra:\n");//Teste com scanfgets(primeiraPalavra);printf("Digite a segunda:\n");//Teste com scanfgets(segundaPalavra);//Verifica se as strings sao iguaisint comparacao = strcmp(primeiraPalavra, segundaPalavra);//Para ser igual, o resultado deve ser 0if (comparacao == 0) {

printf("Sao iguais");} else {

printf("Sao diferentes");}

}

Page 15: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

Comparação ignore case

void ComparaStringsIgnoraCapitulacao() {char primeiraPalavra[80];char segundaPalavra[80];printf("Digita a primeira palavra:\n");//Teste com scanfgets(primeiraPalavra);printf("Digite a segunda:\n");//Teste com scanfgets(segundaPalavra);//Verifica se as strings sao iguaisint comparacao = strcasecmp(primeiraPalavra, segundaPalavra);//Para ser igual, o resultado deve ser 0if (comparacao == 0) {

printf("Sao iguais");} else {

printf("Sao diferentes");}

}

Page 16: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

EncontraCaracter

void EncontraCaracter() {//Uma frase qualquerchar frase[80] = "Biblioteca de Programacao em JavaScript";/* * A frase resultante da consulta * No caso, a frase a partir do caracter 'P' * Teste com outros caracteres e veja o resultado * Dica: frase[80] ou *frase sao exatamente a mesma coisa em C * Dessa forma, todos os programas estao livres para utilizar as duas formas * */char *resultado = strchr(frase, 'e');printf("%s", resultado);

}

Page 17: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

EncontraPalavra

void EncontraPalavra() {char *frase = "Marco Antonio de Sousa Reis";

//Basicamente a mesma coisa, mas pode receber varios caracteres como parametrochar *resultado = strstr(frase, "de");printf("%s", resultado);

}

Page 18: Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas

EncontraPalavra

void CopiaStrings() {char primeiraFrase[80];char segundaFrase[80];printf("Informe seu nome:\n");gets(primeiraFrase);printf("Informe seu sobrenome:\n");gets(segundaFrase);//char *fraseResultante = strcat(primeiraFrase, segundaFrase);//printf("Resultado: %s\n", fraseResultante);

}