MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César...
Transcript of MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César...
![Page 1: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/1.jpg)
MC-202Curso de C - Parte 3
Lehilton Pedrosa
Universidade Estadual de Campinas
Primeiro semestre de 2019
![Page 2: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/2.jpg)
Cifra de CésarA Cifra de César é uma das formas mais simples de criptografia
• E uma das mais fáceis de quebrar...• Dado um parâmetro inteiro k
• cada letra é trocada pela k-ésima letra após ela
– Se k = 1, a é trocada por b, b por c, c por d, etc– Se k = 2, a é trocada por c, b por d, c por e, etc
• ao chegar no final do alfabeto, nós voltamos para o início
Cifra de César para k = 6:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
Para desencriptar, basta fazer o mesmo processo para 26 − k
2
![Page 3: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/3.jpg)
Cifra de CésarA Cifra de César é uma das formas mais simples de criptografia
• E uma das mais fáceis de quebrar...
• Dado um parâmetro inteiro k
• cada letra é trocada pela k-ésima letra após ela
– Se k = 1, a é trocada por b, b por c, c por d, etc– Se k = 2, a é trocada por c, b por d, c por e, etc
• ao chegar no final do alfabeto, nós voltamos para o início
Cifra de César para k = 6:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
Para desencriptar, basta fazer o mesmo processo para 26 − k
2
![Page 4: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/4.jpg)
Cifra de CésarA Cifra de César é uma das formas mais simples de criptografia
• E uma das mais fáceis de quebrar...• Dado um parâmetro inteiro k
• cada letra é trocada pela k-ésima letra após ela
– Se k = 1, a é trocada por b, b por c, c por d, etc– Se k = 2, a é trocada por c, b por d, c por e, etc
• ao chegar no final do alfabeto, nós voltamos para o início
Cifra de César para k = 6:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
Para desencriptar, basta fazer o mesmo processo para 26 − k
2
![Page 5: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/5.jpg)
Cifra de CésarA Cifra de César é uma das formas mais simples de criptografia
• E uma das mais fáceis de quebrar...• Dado um parâmetro inteiro k
• cada letra é trocada pela k-ésima letra após ela
– Se k = 1, a é trocada por b, b por c, c por d, etc– Se k = 2, a é trocada por c, b por d, c por e, etc
• ao chegar no final do alfabeto, nós voltamos para o início
Cifra de César para k = 6:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
Para desencriptar, basta fazer o mesmo processo para 26 − k
2
![Page 6: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/6.jpg)
Cifra de CésarA Cifra de César é uma das formas mais simples de criptografia
• E uma das mais fáceis de quebrar...• Dado um parâmetro inteiro k
• cada letra é trocada pela k-ésima letra após ela– Se k = 1, a é trocada por b, b por c, c por d, etc
– Se k = 2, a é trocada por c, b por d, c por e, etc• ao chegar no final do alfabeto, nós voltamos para o início
Cifra de César para k = 6:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
Para desencriptar, basta fazer o mesmo processo para 26 − k
2
![Page 7: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/7.jpg)
Cifra de CésarA Cifra de César é uma das formas mais simples de criptografia
• E uma das mais fáceis de quebrar...• Dado um parâmetro inteiro k
• cada letra é trocada pela k-ésima letra após ela– Se k = 1, a é trocada por b, b por c, c por d, etc– Se k = 2, a é trocada por c, b por d, c por e, etc
• ao chegar no final do alfabeto, nós voltamos para o início
Cifra de César para k = 6:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
Para desencriptar, basta fazer o mesmo processo para 26 − k
2
![Page 8: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/8.jpg)
Cifra de CésarA Cifra de César é uma das formas mais simples de criptografia
• E uma das mais fáceis de quebrar...• Dado um parâmetro inteiro k
• cada letra é trocada pela k-ésima letra após ela– Se k = 1, a é trocada por b, b por c, c por d, etc– Se k = 2, a é trocada por c, b por d, c por e, etc
• ao chegar no final do alfabeto, nós voltamos para o início
Cifra de César para k = 6:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
Para desencriptar, basta fazer o mesmo processo para 26 − k
2
![Page 9: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/9.jpg)
Cifra de CésarA Cifra de César é uma das formas mais simples de criptografia
• E uma das mais fáceis de quebrar...• Dado um parâmetro inteiro k
• cada letra é trocada pela k-ésima letra após ela– Se k = 1, a é trocada por b, b por c, c por d, etc– Se k = 2, a é trocada por c, b por d, c por e, etc
• ao chegar no final do alfabeto, nós voltamos para o início
Cifra de César para k = 6:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
Para desencriptar, basta fazer o mesmo processo para 26 − k
2
![Page 10: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/10.jpg)
Cifra de CésarA Cifra de César é uma das formas mais simples de criptografia
• E uma das mais fáceis de quebrar...• Dado um parâmetro inteiro k
• cada letra é trocada pela k-ésima letra após ela– Se k = 1, a é trocada por b, b por c, c por d, etc– Se k = 2, a é trocada por c, b por d, c por e, etc
• ao chegar no final do alfabeto, nós voltamos para o início
Cifra de César para k = 6:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
Para desencriptar, basta fazer o mesmo processo para 26 − k
2
![Page 11: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/11.jpg)
Cifra de CésarA Cifra de César é uma das formas mais simples de criptografia
• E uma das mais fáceis de quebrar...• Dado um parâmetro inteiro k
• cada letra é trocada pela k-ésima letra após ela– Se k = 1, a é trocada por b, b por c, c por d, etc– Se k = 2, a é trocada por c, b por d, c por e, etc
• ao chegar no final do alfabeto, nós voltamos para o início
Cifra de César para k = 6:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
Para desencriptar, basta fazer o mesmo processo para 26 − k
2
![Page 12: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/12.jpg)
Cifra de César em C
Vamos fazer um programa que encripta uma sequência de letrasusando a cifra de César
Para isso precisamos:• Saber como representar letras no C• Como ler e imprimir letras no C• Como converter as letras de uma maneira prática
3
![Page 13: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/13.jpg)
Cifra de César em C
Vamos fazer um programa que encripta uma sequência de letrasusando a cifra de César
Para isso precisamos:
• Saber como representar letras no C• Como ler e imprimir letras no C• Como converter as letras de uma maneira prática
3
![Page 14: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/14.jpg)
Cifra de César em C
Vamos fazer um programa que encripta uma sequência de letrasusando a cifra de César
Para isso precisamos:• Saber como representar letras no C
• Como ler e imprimir letras no C• Como converter as letras de uma maneira prática
3
![Page 15: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/15.jpg)
Cifra de César em C
Vamos fazer um programa que encripta uma sequência de letrasusando a cifra de César
Para isso precisamos:• Saber como representar letras no C• Como ler e imprimir letras no C
• Como converter as letras de uma maneira prática
3
![Page 16: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/16.jpg)
Cifra de César em C
Vamos fazer um programa que encripta uma sequência de letrasusando a cifra de César
Para isso precisamos:• Saber como representar letras no C• Como ler e imprimir letras no C• Como converter as letras de uma maneira prática
3
![Page 17: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/17.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char
• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII
– cada número representa um caractere
• representamos constantes usando aspas simples
– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c
– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 18: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/18.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII
– cada número representa um caractere
• representamos constantes usando aspas simples
– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c
– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 19: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/19.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)
– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII
– cada número representa um caractere
• representamos constantes usando aspas simples
– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c
– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 20: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/20.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc
– como se fosse um int mas com menos valores válidos• representa caracteres usando a tabela ASCII
– cada número representa um caractere
• representamos constantes usando aspas simples
– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c
– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 21: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/21.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII
– cada número representa um caractere
• representamos constantes usando aspas simples
– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c
– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 22: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/22.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII
– cada número representa um caractere• representamos constantes usando aspas simples
– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c
– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 23: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/23.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII– cada número representa um caractere
• representamos constantes usando aspas simples
– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c
– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 24: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/24.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII– cada número representa um caractere
• representamos constantes usando aspas simples
– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c
– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 25: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/25.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII– cada número representa um caractere
• representamos constantes usando aspas simples– ex: 'a', 'b', 'c', '\n', etc...
– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c
– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 26: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/26.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII– cada número representa um caractere
• representamos constantes usando aspas simples– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII
– não precisamos saber qual é esse número exatamente...• para ler e imprimir usamos %c
– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 27: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/27.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII– cada número representa um caractere
• representamos constantes usando aspas simples– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c
– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 28: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/28.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII– cada número representa um caractere
• representamos constantes usando aspas simples– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c
– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 29: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/29.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII– cada número representa um caractere
• representamos constantes usando aspas simples– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c– quando queremos o caractere em si
– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 30: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/30.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII– cada número representa um caractere
• representamos constantes usando aspas simples– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 31: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/31.jpg)
O tipo char
Uma letra ou caractere em C é representado pelo tipo char• é um número inteiro
– normalmente tem 8 bits (está entre −128 e 127)– podemos somar, subtrair, multiplicar, dividir, etc– como se fosse um int mas com menos valores válidos
• representa caracteres usando a tabela ASCII– cada número representa um caractere
• representamos constantes usando aspas simples– ex: 'a', 'b', 'c', '\n', etc...– 'a' significa o número do caractere a na tabela ASCII– não precisamos saber qual é esse número exatamente...
• para ler e imprimir usamos %c– quando queremos o caractere em si– ex: printf("letra: %c, código: %d", 'a', 'a');
– imprime letra: a, código: 97
4
![Page 32: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/32.jpg)
Tabela ASCII32 (espaço) 51 3 70 F 89 Y 108 l33 ! 52 4 71 G 90 Z 109 m34 ” 53 5 72 H 91 [ 110 n35 # 54 6 73 I 92 \ 111 o36 $ 55 7 74 J 93 ] 112 p37 % 56 8 75 K 94 ^ 113 q38 & 57 9 76 L 95 _ 114 r39 ’ 58 : 77 M 96 ‘ 115 s40 ( 59 ; 78 N 97 a 116 t41 ) 60 < 79 O 98 b 117 u42 * 61 = 80 P 99 c 118 v43 + 62 > 81 Q 100 d 119 w44 , 63 ? 82 R 101 e 120 x45 - 64 @ 83 S 102 f 121 y46 . 65 A 84 T 103 g 122 z47 / 66 B 85 U 104 h 123 {48 0 67 C 86 V 105 i 124 |49 1 68 D 87 W 106 j 125 }50 2 69 E 88 X 107 k 126 ~
Existem também \t (9 - tab) e \n (12 - quebra de linha)• Outros códigos não-negativos não são imprimíveis• Códigos negativos são usados em outras tabelas
5
![Page 33: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/33.jpg)
Tabela ASCII32 (espaço) 51 3 70 F 89 Y 108 l33 ! 52 4 71 G 90 Z 109 m34 ” 53 5 72 H 91 [ 110 n35 # 54 6 73 I 92 \ 111 o36 $ 55 7 74 J 93 ] 112 p37 % 56 8 75 K 94 ^ 113 q38 & 57 9 76 L 95 _ 114 r39 ’ 58 : 77 M 96 ‘ 115 s40 ( 59 ; 78 N 97 a 116 t41 ) 60 < 79 O 98 b 117 u42 * 61 = 80 P 99 c 118 v43 + 62 > 81 Q 100 d 119 w44 , 63 ? 82 R 101 e 120 x45 - 64 @ 83 S 102 f 121 y46 . 65 A 84 T 103 g 122 z47 / 66 B 85 U 104 h 123 {48 0 67 C 86 V 105 i 124 |49 1 68 D 87 W 106 j 125 }50 2 69 E 88 X 107 k 126 ~
Existem também \t (9 - tab) e \n (12 - quebra de linha)
• Outros códigos não-negativos não são imprimíveis• Códigos negativos são usados em outras tabelas
5
![Page 34: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/34.jpg)
Tabela ASCII32 (espaço) 51 3 70 F 89 Y 108 l33 ! 52 4 71 G 90 Z 109 m34 ” 53 5 72 H 91 [ 110 n35 # 54 6 73 I 92 \ 111 o36 $ 55 7 74 J 93 ] 112 p37 % 56 8 75 K 94 ^ 113 q38 & 57 9 76 L 95 _ 114 r39 ’ 58 : 77 M 96 ‘ 115 s40 ( 59 ; 78 N 97 a 116 t41 ) 60 < 79 O 98 b 117 u42 * 61 = 80 P 99 c 118 v43 + 62 > 81 Q 100 d 119 w44 , 63 ? 82 R 101 e 120 x45 - 64 @ 83 S 102 f 121 y46 . 65 A 84 T 103 g 122 z47 / 66 B 85 U 104 h 123 {48 0 67 C 86 V 105 i 124 |49 1 68 D 87 W 106 j 125 }50 2 69 E 88 X 107 k 126 ~
Existem também \t (9 - tab) e \n (12 - quebra de linha)• Outros códigos não-negativos não são imprimíveis
• Códigos negativos são usados em outras tabelas
5
![Page 35: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/35.jpg)
Tabela ASCII32 (espaço) 51 3 70 F 89 Y 108 l33 ! 52 4 71 G 90 Z 109 m34 ” 53 5 72 H 91 [ 110 n35 # 54 6 73 I 92 \ 111 o36 $ 55 7 74 J 93 ] 112 p37 % 56 8 75 K 94 ^ 113 q38 & 57 9 76 L 95 _ 114 r39 ’ 58 : 77 M 96 ‘ 115 s40 ( 59 ; 78 N 97 a 116 t41 ) 60 < 79 O 98 b 117 u42 * 61 = 80 P 99 c 118 v43 + 62 > 81 Q 100 d 119 w44 , 63 ? 82 R 101 e 120 x45 - 64 @ 83 S 102 f 121 y46 . 65 A 84 T 103 g 122 z47 / 66 B 85 U 104 h 123 {48 0 67 C 86 V 105 i 124 |49 1 68 D 87 W 106 j 125 }50 2 69 E 88 X 107 k 126 ~
Existem também \t (9 - tab) e \n (12 - quebra de linha)• Outros códigos não-negativos não são imprimíveis• Códigos negativos são usados em outras tabelas
5
![Page 36: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/36.jpg)
O programa1 #include <stdio.h>23 int main() {4 int k;5 char plain, cripto;6 scanf("%d ", &k);7 scanf("%c", &plain);8 while (plain != '#') {9 pos_plain = plain - 'A';10 pos_cripto = (pos_plain + k) % 26;11 cripto = 'A' + pos_cripto;12 printf("%c", cripto);13 scanf("%c", &plain);14 }15 printf("\n");16 return 0;17 }
Detalhes:• Há um espaço após o %d
– consome os próximos caracteres brancos: espaço, \n e \t– sem isso, o scanf leria um \n– cuidado, o C é chato na leitura de caracteres...
6
![Page 37: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/37.jpg)
O programa1 #include <stdio.h>23 int main() {4 int k;5 char plain, cripto;6 scanf("%d ", &k);7 scanf("%c", &plain);8 while (plain != '#') {9 pos_plain = plain - 'A';10 pos_cripto = (pos_plain + k) % 26;11 cripto = 'A' + pos_cripto;12 printf("%c", cripto);13 scanf("%c", &plain);14 }15 printf("\n");16 return 0;17 }
Detalhes:
• Há um espaço após o %d
– consome os próximos caracteres brancos: espaço, \n e \t– sem isso, o scanf leria um \n– cuidado, o C é chato na leitura de caracteres...
6
![Page 38: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/38.jpg)
O programa1 #include <stdio.h>23 int main() {4 int k;5 char plain, cripto;6 scanf("%d ", &k);7 scanf("%c", &plain);8 while (plain != '#') {9 pos_plain = plain - 'A';10 pos_cripto = (pos_plain + k) % 26;11 cripto = 'A' + pos_cripto;12 printf("%c", cripto);13 scanf("%c", &plain);14 }15 printf("\n");16 return 0;17 }
Detalhes:• Há um espaço após o %d
– consome os próximos caracteres brancos: espaço, \n e \t– sem isso, o scanf leria um \n– cuidado, o C é chato na leitura de caracteres...
6
![Page 39: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/39.jpg)
O programa1 #include <stdio.h>23 int main() {4 int k;5 char plain, cripto;6 scanf("%d ", &k);7 scanf("%c", &plain);8 while (plain != '#') {9 pos_plain = plain - 'A';10 pos_cripto = (pos_plain + k) % 26;11 cripto = 'A' + pos_cripto;12 printf("%c", cripto);13 scanf("%c", &plain);14 }15 printf("\n");16 return 0;17 }
Detalhes:• Há um espaço após o %d
– consome os próximos caracteres brancos: espaço, \n e \t
– sem isso, o scanf leria um \n– cuidado, o C é chato na leitura de caracteres...
6
![Page 40: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/40.jpg)
O programa1 #include <stdio.h>23 int main() {4 int k;5 char plain, cripto;6 scanf("%d ", &k);7 scanf("%c", &plain);8 while (plain != '#') {9 pos_plain = plain - 'A';10 pos_cripto = (pos_plain + k) % 26;11 cripto = 'A' + pos_cripto;12 printf("%c", cripto);13 scanf("%c", &plain);14 }15 printf("\n");16 return 0;17 }
Detalhes:• Há um espaço após o %d
– consome os próximos caracteres brancos: espaço, \n e \t– sem isso, o scanf leria um \n
– cuidado, o C é chato na leitura de caracteres...
6
![Page 41: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/41.jpg)
O programa1 #include <stdio.h>23 int main() {4 int k;5 char plain, cripto;6 scanf("%d ", &k);7 scanf("%c", &plain);8 while (plain != '#') {9 pos_plain = plain - 'A';10 pos_cripto = (pos_plain + k) % 26;11 cripto = 'A' + pos_cripto;12 printf("%c", cripto);13 scanf("%c", &plain);14 }15 printf("\n");16 return 0;17 }
Detalhes:• Há um espaço após o %d
– consome os próximos caracteres brancos: espaço, \n e \t– sem isso, o scanf leria um \n– cuidado, o C é chato na leitura de caracteres...
6
![Page 42: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/42.jpg)
Comparações e Operadores Lógicos em CComo no Python, os operadores de comparação a seguir:
• <, <=, >, >=, == e !=• mas não temos o operador is
Em C, não temos o tipo bool• O C considera o valor 0 como falso• E valores diferentes de 0 como verdadeiro
Os operadores lógicos são diferentes em C:
Python CE and &&Ou or ||Não not !
7
![Page 43: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/43.jpg)
Comparações e Operadores Lógicos em CComo no Python, os operadores de comparação a seguir:
• <, <=, >, >=, == e !=
• mas não temos o operador is
Em C, não temos o tipo bool• O C considera o valor 0 como falso• E valores diferentes de 0 como verdadeiro
Os operadores lógicos são diferentes em C:
Python CE and &&Ou or ||Não not !
7
![Page 44: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/44.jpg)
Comparações e Operadores Lógicos em CComo no Python, os operadores de comparação a seguir:
• <, <=, >, >=, == e !=• mas não temos o operador is
Em C, não temos o tipo bool• O C considera o valor 0 como falso• E valores diferentes de 0 como verdadeiro
Os operadores lógicos são diferentes em C:
Python CE and &&Ou or ||Não not !
7
![Page 45: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/45.jpg)
Comparações e Operadores Lógicos em CComo no Python, os operadores de comparação a seguir:
• <, <=, >, >=, == e !=• mas não temos o operador is
Em C, não temos o tipo bool
• O C considera o valor 0 como falso• E valores diferentes de 0 como verdadeiro
Os operadores lógicos são diferentes em C:
Python CE and &&Ou or ||Não not !
7
![Page 46: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/46.jpg)
Comparações e Operadores Lógicos em CComo no Python, os operadores de comparação a seguir:
• <, <=, >, >=, == e !=• mas não temos o operador is
Em C, não temos o tipo bool• O C considera o valor 0 como falso
• E valores diferentes de 0 como verdadeiro
Os operadores lógicos são diferentes em C:
Python CE and &&Ou or ||Não not !
7
![Page 47: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/47.jpg)
Comparações e Operadores Lógicos em CComo no Python, os operadores de comparação a seguir:
• <, <=, >, >=, == e !=• mas não temos o operador is
Em C, não temos o tipo bool• O C considera o valor 0 como falso• E valores diferentes de 0 como verdadeiro
Os operadores lógicos são diferentes em C:
Python CE and &&Ou or ||Não not !
7
![Page 48: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/48.jpg)
Comparações e Operadores Lógicos em CComo no Python, os operadores de comparação a seguir:
• <, <=, >, >=, == e !=• mas não temos o operador is
Em C, não temos o tipo bool• O C considera o valor 0 como falso• E valores diferentes de 0 como verdadeiro
Os operadores lógicos são diferentes em C:
Python CE and &&Ou or ||Não not !
7
![Page 49: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/49.jpg)
Comparações e Operadores Lógicos em CComo no Python, os operadores de comparação a seguir:
• <, <=, >, >=, == e !=• mas não temos o operador is
Em C, não temos o tipo bool• O C considera o valor 0 como falso• E valores diferentes de 0 como verdadeiro
Os operadores lógicos são diferentes em C:
Python CE and &&Ou or ||Não not !
7
![Page 50: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/50.jpg)
Busca em um texto
Queremos buscar por um padrão em um texto
• Um símbolo * representa um caractere coringa
Por exemplo, se procurarmos por *os no seguinte texto:Muito além, nos confins inexplorados da região mais bregada Borda Ocidental desta Galáxia, há um pequeno sol ama-relo e esquecido.1
encontraremos nos e dos
1
Douglas Adams, O Guia do Mochileiro das Galáxias, Editora Arquiteto,2004
8
![Page 51: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/51.jpg)
Busca em um texto
Queremos buscar por um padrão em um texto• Um símbolo * representa um caractere coringa
Por exemplo, se procurarmos por *os no seguinte texto:Muito além, nos confins inexplorados da região mais bregada Borda Ocidental desta Galáxia, há um pequeno sol ama-relo e esquecido.1
encontraremos nos e dos
1
Douglas Adams, O Guia do Mochileiro das Galáxias, Editora Arquiteto,2004
8
![Page 52: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/52.jpg)
Busca em um texto
Queremos buscar por um padrão em um texto• Um símbolo * representa um caractere coringa
Por exemplo, se procurarmos por *os no seguinte texto:
Muito além, nos confins inexplorados da região mais bregada Borda Ocidental desta Galáxia, há um pequeno sol ama-relo e esquecido.1
encontraremos nos e dos
1
Douglas Adams, O Guia do Mochileiro das Galáxias, Editora Arquiteto,2004
8
![Page 53: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/53.jpg)
Busca em um texto
Queremos buscar por um padrão em um texto• Um símbolo * representa um caractere coringa
Por exemplo, se procurarmos por *os no seguinte texto:Muito além, nos confins inexplorados da região mais bregada Borda Ocidental desta Galáxia, há um pequeno sol ama-relo e esquecido.1
encontraremos nos e dos
1Douglas Adams, O Guia do Mochileiro das Galáxias, Editora Arquiteto,2004
8
![Page 54: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/54.jpg)
Busca em um texto
Queremos buscar por um padrão em um texto• Um símbolo * representa um caractere coringa
Por exemplo, se procurarmos por *os no seguinte texto:Muito além, nos confins inexplorados da região mais bregada Borda Ocidental desta Galáxia, há um pequeno sol ama-relo e esquecido.1
encontraremos nos e dos
1Douglas Adams, O Guia do Mochileiro das Galáxias, Editora Arquiteto,2004
8
![Page 55: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/55.jpg)
Ideia do algoritmo
Para cada posição do texto, verifique se o padrão começa ali
• Existem algoritmos melhores do que esse• Vamos trabalhar com strings sem acentos
De novo, vamos listar as tarefas de que precisamos:• verificar se padrão ocorre em uma posição do texto:
– int ocorre(char texto[], int pos, char padrao[])
• imprimir um trecho do texto:
– void imprime_trecho(char texto[], int ini, int tam)
• medir o tamanho de uma string:
– int tamanho(char string[])
9
![Page 56: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/56.jpg)
Ideia do algoritmo
Para cada posição do texto, verifique se o padrão começa ali• Existem algoritmos melhores do que esse
• Vamos trabalhar com strings sem acentos
De novo, vamos listar as tarefas de que precisamos:• verificar se padrão ocorre em uma posição do texto:
– int ocorre(char texto[], int pos, char padrao[])
• imprimir um trecho do texto:
– void imprime_trecho(char texto[], int ini, int tam)
• medir o tamanho de uma string:
– int tamanho(char string[])
9
![Page 57: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/57.jpg)
Ideia do algoritmo
Para cada posição do texto, verifique se o padrão começa ali• Existem algoritmos melhores do que esse• Vamos trabalhar com strings sem acentos
De novo, vamos listar as tarefas de que precisamos:• verificar se padrão ocorre em uma posição do texto:
– int ocorre(char texto[], int pos, char padrao[])
• imprimir um trecho do texto:
– void imprime_trecho(char texto[], int ini, int tam)
• medir o tamanho de uma string:
– int tamanho(char string[])
9
![Page 58: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/58.jpg)
Ideia do algoritmo
Para cada posição do texto, verifique se o padrão começa ali• Existem algoritmos melhores do que esse• Vamos trabalhar com strings sem acentos
De novo, vamos listar as tarefas de que precisamos:
• verificar se padrão ocorre em uma posição do texto:
– int ocorre(char texto[], int pos, char padrao[])
• imprimir um trecho do texto:
– void imprime_trecho(char texto[], int ini, int tam)
• medir o tamanho de uma string:
– int tamanho(char string[])
9
![Page 59: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/59.jpg)
Ideia do algoritmo
Para cada posição do texto, verifique se o padrão começa ali• Existem algoritmos melhores do que esse• Vamos trabalhar com strings sem acentos
De novo, vamos listar as tarefas de que precisamos:• verificar se padrão ocorre em uma posição do texto:
– int ocorre(char texto[], int pos, char padrao[])
• imprimir um trecho do texto:
– void imprime_trecho(char texto[], int ini, int tam)
• medir o tamanho de uma string:
– int tamanho(char string[])
9
![Page 60: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/60.jpg)
Ideia do algoritmo
Para cada posição do texto, verifique se o padrão começa ali• Existem algoritmos melhores do que esse• Vamos trabalhar com strings sem acentos
De novo, vamos listar as tarefas de que precisamos:• verificar se padrão ocorre em uma posição do texto:
– int ocorre(char texto[], int pos, char padrao[])
• imprimir um trecho do texto:
– void imprime_trecho(char texto[], int ini, int tam)
• medir o tamanho de uma string:
– int tamanho(char string[])
9
![Page 61: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/61.jpg)
Ideia do algoritmo
Para cada posição do texto, verifique se o padrão começa ali• Existem algoritmos melhores do que esse• Vamos trabalhar com strings sem acentos
De novo, vamos listar as tarefas de que precisamos:• verificar se padrão ocorre em uma posição do texto:
– int ocorre(char texto[], int pos, char padrao[])
• imprimir um trecho do texto:
– void imprime_trecho(char texto[], int ini, int tam)
• medir o tamanho de uma string:
– int tamanho(char string[])
9
![Page 62: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/62.jpg)
Ideia do algoritmo
Para cada posição do texto, verifique se o padrão começa ali• Existem algoritmos melhores do que esse• Vamos trabalhar com strings sem acentos
De novo, vamos listar as tarefas de que precisamos:• verificar se padrão ocorre em uma posição do texto:
– int ocorre(char texto[], int pos, char padrao[])
• imprimir um trecho do texto:– void imprime_trecho(char texto[], int ini, int tam)
• medir o tamanho de uma string:
– int tamanho(char string[])
9
![Page 63: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/63.jpg)
Ideia do algoritmo
Para cada posição do texto, verifique se o padrão começa ali• Existem algoritmos melhores do que esse• Vamos trabalhar com strings sem acentos
De novo, vamos listar as tarefas de que precisamos:• verificar se padrão ocorre em uma posição do texto:
– int ocorre(char texto[], int pos, char padrao[])
• imprimir um trecho do texto:– void imprime_trecho(char texto[], int ini, int tam)
• medir o tamanho de uma string:
– int tamanho(char string[])
9
![Page 64: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/64.jpg)
Ideia do algoritmo
Para cada posição do texto, verifique se o padrão começa ali• Existem algoritmos melhores do que esse• Vamos trabalhar com strings sem acentos
De novo, vamos listar as tarefas de que precisamos:• verificar se padrão ocorre em uma posição do texto:
– int ocorre(char texto[], int pos, char padrao[])
• imprimir um trecho do texto:– void imprime_trecho(char texto[], int ini, int tam)
• medir o tamanho de uma string:– int tamanho(char string[])
9
![Page 65: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/65.jpg)
String em CStrings em C são vetores de char terminados com '\0'
• Por exemplo, podemos ter um vetor de char com 12 posiçõesmas a string ter apenas 7 caracteres
e
0
x
1
e
2
m
3
p
4
l
5
o
6
\0
7
l
8
i
9
x
10
o
11
O tamanho da string é o número de caracteres antes do '\0'1 int tamanho(char string[]) {2 int i;3 for (i = 0; string[i] != '\0'; i++) ;4 return i;5 }
Note que esse for tem um bloco vazio• é raro usarmos isso (e algumas pessoas não gostam)• poderia ser trocado por um while (exercício)• um for desses pode ser um bug no seu programa
10
![Page 66: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/66.jpg)
String em CStrings em C são vetores de char terminados com '\0'
• Por exemplo, podemos ter um vetor de char com 12 posiçõesmas a string ter apenas 7 caracteres
e
0
x
1
e
2
m
3
p
4
l
5
o
6
\0
7
l
8
i
9
x
10
o
11
O tamanho da string é o número de caracteres antes do '\0'1 int tamanho(char string[]) {2 int i;3 for (i = 0; string[i] != '\0'; i++) ;4 return i;5 }
Note que esse for tem um bloco vazio• é raro usarmos isso (e algumas pessoas não gostam)• poderia ser trocado por um while (exercício)• um for desses pode ser um bug no seu programa
10
![Page 67: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/67.jpg)
String em CStrings em C são vetores de char terminados com '\0'
• Por exemplo, podemos ter um vetor de char com 12 posiçõesmas a string ter apenas 7 caracteres
e
0
x
1
e
2
m
3
p
4
l
5
o
6
\0
7
l
8
i
9
x
10
o
11
O tamanho da string é o número de caracteres antes do '\0'1 int tamanho(char string[]) {2 int i;3 for (i = 0; string[i] != '\0'; i++) ;4 return i;5 }
Note que esse for tem um bloco vazio• é raro usarmos isso (e algumas pessoas não gostam)• poderia ser trocado por um while (exercício)• um for desses pode ser um bug no seu programa
10
![Page 68: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/68.jpg)
String em CStrings em C são vetores de char terminados com '\0'
• Por exemplo, podemos ter um vetor de char com 12 posiçõesmas a string ter apenas 7 caracteres
e
0
x
1
e
2
m
3
p
4
l
5
o
6
\0
7
l
8
i
9
x
10
o
11
O tamanho da string é o número de caracteres antes do '\0'
1 int tamanho(char string[]) {2 int i;3 for (i = 0; string[i] != '\0'; i++) ;4 return i;5 }
Note que esse for tem um bloco vazio• é raro usarmos isso (e algumas pessoas não gostam)• poderia ser trocado por um while (exercício)• um for desses pode ser um bug no seu programa
10
![Page 69: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/69.jpg)
String em CStrings em C são vetores de char terminados com '\0'
• Por exemplo, podemos ter um vetor de char com 12 posiçõesmas a string ter apenas 7 caracteres
e
0
x
1
e
2
m
3
p
4
l
5
o
6
\0
7
l
8
i
9
x
10
o
11
O tamanho da string é o número de caracteres antes do '\0'1 int tamanho(char string[]) {2 int i;3 for (i = 0; string[i] != '\0'; i++) ;4 return i;5 }
Note que esse for tem um bloco vazio• é raro usarmos isso (e algumas pessoas não gostam)• poderia ser trocado por um while (exercício)• um for desses pode ser um bug no seu programa
10
![Page 70: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/70.jpg)
String em CStrings em C são vetores de char terminados com '\0'
• Por exemplo, podemos ter um vetor de char com 12 posiçõesmas a string ter apenas 7 caracteres
e
0
x
1
e
2
m
3
p
4
l
5
o
6
\0
7
l
8
i
9
x
10
o
11
O tamanho da string é o número de caracteres antes do '\0'1 int tamanho(char string[]) {2 int i;3 for (i = 0; string[i] != '\0'; i++) ;4 return i;5 }
Note que esse for tem um bloco vazio
• é raro usarmos isso (e algumas pessoas não gostam)• poderia ser trocado por um while (exercício)• um for desses pode ser um bug no seu programa
10
![Page 71: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/71.jpg)
String em CStrings em C são vetores de char terminados com '\0'
• Por exemplo, podemos ter um vetor de char com 12 posiçõesmas a string ter apenas 7 caracteres
e
0
x
1
e
2
m
3
p
4
l
5
o
6
\0
7
l
8
i
9
x
10
o
11
O tamanho da string é o número de caracteres antes do '\0'1 int tamanho(char string[]) {2 int i;3 for (i = 0; string[i] != '\0'; i++) ;4 return i;5 }
Note que esse for tem um bloco vazio• é raro usarmos isso (e algumas pessoas não gostam)
• poderia ser trocado por um while (exercício)• um for desses pode ser um bug no seu programa
10
![Page 72: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/72.jpg)
String em CStrings em C são vetores de char terminados com '\0'
• Por exemplo, podemos ter um vetor de char com 12 posiçõesmas a string ter apenas 7 caracteres
e
0
x
1
e
2
m
3
p
4
l
5
o
6
\0
7
l
8
i
9
x
10
o
11
O tamanho da string é o número de caracteres antes do '\0'1 int tamanho(char string[]) {2 int i;3 for (i = 0; string[i] != '\0'; i++) ;4 return i;5 }
Note que esse for tem um bloco vazio• é raro usarmos isso (e algumas pessoas não gostam)• poderia ser trocado por um while (exercício)
• um for desses pode ser um bug no seu programa
10
![Page 73: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/73.jpg)
String em CStrings em C são vetores de char terminados com '\0'
• Por exemplo, podemos ter um vetor de char com 12 posiçõesmas a string ter apenas 7 caracteres
e
0
x
1
e
2
m
3
p
4
l
5
o
6
\0
7
l
8
i
9
x
10
o
11
O tamanho da string é o número de caracteres antes do '\0'1 int tamanho(char string[]) {2 int i;3 for (i = 0; string[i] != '\0'; i++) ;4 return i;5 }
Note que esse for tem um bloco vazio• é raro usarmos isso (e algumas pessoas não gostam)• poderia ser trocado por um while (exercício)• um for desses pode ser um bug no seu programa
10
![Page 74: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/74.jpg)
Imprimindo uma substringQueremos uma função que imprima um trecho de um texto
• imprimiremos o pedaço correspondente ao padrão
1 void imprime_trecho(char texto[], int ini, int tam) {2 int j;3 printf("%d: ", ini);4 for (j = 0; j < tam; j++)5 printf("%c", texto[ini + j]);6 printf("\n");7 }
Um bug:• pode ser que j ultrapasse a última letra da string• poderíamos parar antes se encontrarmos o '\0'
Aqui imprimimos a string char a char• mas veremos uma forma mais fácil
11
![Page 75: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/75.jpg)
Imprimindo uma substringQueremos uma função que imprima um trecho de um texto
• imprimiremos o pedaço correspondente ao padrão
1 void imprime_trecho(char texto[], int ini, int tam) {2 int j;3 printf("%d: ", ini);4 for (j = 0; j < tam; j++)5 printf("%c", texto[ini + j]);6 printf("\n");7 }
Um bug:• pode ser que j ultrapasse a última letra da string• poderíamos parar antes se encontrarmos o '\0'
Aqui imprimimos a string char a char• mas veremos uma forma mais fácil
11
![Page 76: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/76.jpg)
Imprimindo uma substringQueremos uma função que imprima um trecho de um texto
• imprimiremos o pedaço correspondente ao padrão
1 void imprime_trecho(char texto[], int ini, int tam) {2 int j;3 printf("%d: ", ini);4 for (j = 0; j < tam; j++)5 printf("%c", texto[ini + j]);6 printf("\n");7 }
Um bug:• pode ser que j ultrapasse a última letra da string• poderíamos parar antes se encontrarmos o '\0'
Aqui imprimimos a string char a char• mas veremos uma forma mais fácil
11
![Page 77: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/77.jpg)
Imprimindo uma substringQueremos uma função que imprima um trecho de um texto
• imprimiremos o pedaço correspondente ao padrão
1 void imprime_trecho(char texto[], int ini, int tam) {2 int j;3 printf("%d: ", ini);4 for (j = 0; j < tam; j++)5 printf("%c", texto[ini + j]);6 printf("\n");7 }
Um bug:
• pode ser que j ultrapasse a última letra da string• poderíamos parar antes se encontrarmos o '\0'
Aqui imprimimos a string char a char• mas veremos uma forma mais fácil
11
![Page 78: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/78.jpg)
Imprimindo uma substringQueremos uma função que imprima um trecho de um texto
• imprimiremos o pedaço correspondente ao padrão
1 void imprime_trecho(char texto[], int ini, int tam) {2 int j;3 printf("%d: ", ini);4 for (j = 0; j < tam; j++)5 printf("%c", texto[ini + j]);6 printf("\n");7 }
Um bug:• pode ser que j ultrapasse a última letra da string
• poderíamos parar antes se encontrarmos o '\0'
Aqui imprimimos a string char a char• mas veremos uma forma mais fácil
11
![Page 79: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/79.jpg)
Imprimindo uma substringQueremos uma função que imprima um trecho de um texto
• imprimiremos o pedaço correspondente ao padrão
1 void imprime_trecho(char texto[], int ini, int tam) {2 int j;3 printf("%d: ", ini);4 for (j = 0; j < tam; j++)5 printf("%c", texto[ini + j]);6 printf("\n");7 }
Um bug:• pode ser que j ultrapasse a última letra da string• poderíamos parar antes se encontrarmos o '\0'
Aqui imprimimos a string char a char• mas veremos uma forma mais fácil
11
![Page 80: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/80.jpg)
Imprimindo uma substringQueremos uma função que imprima um trecho de um texto
• imprimiremos o pedaço correspondente ao padrão
1 void imprime_trecho(char texto[], int ini, int tam) {2 int j;3 printf("%d: ", ini);4 for (j = 0; j < tam; j++)5 printf("%c", texto[ini + j]);6 printf("\n");7 }
Um bug:• pode ser que j ultrapasse a última letra da string• poderíamos parar antes se encontrarmos o '\0'
Aqui imprimimos a string char a char
• mas veremos uma forma mais fácil
11
![Page 81: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/81.jpg)
Imprimindo uma substringQueremos uma função que imprima um trecho de um texto
• imprimiremos o pedaço correspondente ao padrão
1 void imprime_trecho(char texto[], int ini, int tam) {2 int j;3 printf("%d: ", ini);4 for (j = 0; j < tam; j++)5 printf("%c", texto[ini + j]);6 printf("\n");7 }
Um bug:• pode ser que j ultrapasse a última letra da string• poderíamos parar antes se encontrarmos o '\0'
Aqui imprimimos a string char a char• mas veremos uma forma mais fácil
11
![Page 82: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/82.jpg)
Verificando se o padrão está na posiçãoQueremos ver se padrao ocorre na posição pos do texto
• função devolve 0 se não ocorre• função devolve diferente de 0 caso contrário
1 int ocorre(char texto[], int pos, char padrao[]) {2 int j;3 for (j = 0; padrao[j] != '\0'; j++)4 if (texto[pos+j] == '\0' ||5 (texto[pos+j] != padrao[j] && padrao[j] != '*'))6 return 0;7 return 1;8 }
Note o uso de || e &&:• && precede ||• mas os parênteses deixam clara a ordem de precedência
12
![Page 83: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/83.jpg)
Verificando se o padrão está na posiçãoQueremos ver se padrao ocorre na posição pos do texto
• função devolve 0 se não ocorre
• função devolve diferente de 0 caso contrário
1 int ocorre(char texto[], int pos, char padrao[]) {2 int j;3 for (j = 0; padrao[j] != '\0'; j++)4 if (texto[pos+j] == '\0' ||5 (texto[pos+j] != padrao[j] && padrao[j] != '*'))6 return 0;7 return 1;8 }
Note o uso de || e &&:• && precede ||• mas os parênteses deixam clara a ordem de precedência
12
![Page 84: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/84.jpg)
Verificando se o padrão está na posiçãoQueremos ver se padrao ocorre na posição pos do texto
• função devolve 0 se não ocorre• função devolve diferente de 0 caso contrário
1 int ocorre(char texto[], int pos, char padrao[]) {2 int j;3 for (j = 0; padrao[j] != '\0'; j++)4 if (texto[pos+j] == '\0' ||5 (texto[pos+j] != padrao[j] && padrao[j] != '*'))6 return 0;7 return 1;8 }
Note o uso de || e &&:• && precede ||• mas os parênteses deixam clara a ordem de precedência
12
![Page 85: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/85.jpg)
Verificando se o padrão está na posiçãoQueremos ver se padrao ocorre na posição pos do texto
• função devolve 0 se não ocorre• função devolve diferente de 0 caso contrário
1 int ocorre(char texto[], int pos, char padrao[]) {2 int j;3 for (j = 0; padrao[j] != '\0'; j++)4 if (texto[pos+j] == '\0' ||5 (texto[pos+j] != padrao[j] && padrao[j] != '*'))6 return 0;7 return 1;8 }
Note o uso de || e &&:• && precede ||• mas os parênteses deixam clara a ordem de precedência
12
![Page 86: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/86.jpg)
Verificando se o padrão está na posiçãoQueremos ver se padrao ocorre na posição pos do texto
• função devolve 0 se não ocorre• função devolve diferente de 0 caso contrário
1 int ocorre(char texto[], int pos, char padrao[]) {2 int j;3 for (j = 0; padrao[j] != '\0'; j++)4 if (texto[pos+j] == '\0' ||5 (texto[pos+j] != padrao[j] && padrao[j] != '*'))6 return 0;7 return 1;8 }
Note o uso de || e &&:
• && precede ||• mas os parênteses deixam clara a ordem de precedência
12
![Page 87: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/87.jpg)
Verificando se o padrão está na posiçãoQueremos ver se padrao ocorre na posição pos do texto
• função devolve 0 se não ocorre• função devolve diferente de 0 caso contrário
1 int ocorre(char texto[], int pos, char padrao[]) {2 int j;3 for (j = 0; padrao[j] != '\0'; j++)4 if (texto[pos+j] == '\0' ||5 (texto[pos+j] != padrao[j] && padrao[j] != '*'))6 return 0;7 return 1;8 }
Note o uso de || e &&:• && precede ||
• mas os parênteses deixam clara a ordem de precedência
12
![Page 88: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/88.jpg)
Verificando se o padrão está na posiçãoQueremos ver se padrao ocorre na posição pos do texto
• função devolve 0 se não ocorre• função devolve diferente de 0 caso contrário
1 int ocorre(char texto[], int pos, char padrao[]) {2 int j;3 for (j = 0; padrao[j] != '\0'; j++)4 if (texto[pos+j] == '\0' ||5 (texto[pos+j] != padrao[j] && padrao[j] != '*'))6 return 0;7 return 1;8 }
Note o uso de || e &&:• && precede ||• mas os parênteses deixam clara a ordem de precedência
12
![Page 89: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/89.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Imprimimos strings usando %s
Lemos strings sem espaço usando %s:• isto é, lê até o primeiro espaço, '\n' ou '\t'• não colocamos o & antes do nome da variável
13
![Page 90: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/90.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Imprimimos strings usando %s
Lemos strings sem espaço usando %s:• isto é, lê até o primeiro espaço, '\n' ou '\t'• não colocamos o & antes do nome da variável
13
![Page 91: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/91.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Imprimimos strings usando %s
Lemos strings sem espaço usando %s:
• isto é, lê até o primeiro espaço, '\n' ou '\t'• não colocamos o & antes do nome da variável
13
![Page 92: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/92.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Imprimimos strings usando %s
Lemos strings sem espaço usando %s:• isto é, lê até o primeiro espaço, '\n' ou '\t'
• não colocamos o & antes do nome da variável
13
![Page 93: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/93.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Imprimimos strings usando %s
Lemos strings sem espaço usando %s:• isto é, lê até o primeiro espaço, '\n' ou '\t'• não colocamos o & antes do nome da variável
13
![Page 94: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/94.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Lemos strings com espaços usando a função fgets:• primeiro parâmetro: nome da variável• segundo parâmetro: tamanho máximo da string
– contando o '\0'
• terceiro parâmetro: de qual arquivo devemos ler
– estamos da entrada padrão, por isso passamos stdin
O fgets lê apenas até o primeiro '\n'• e pode incluir o '\n' na string
14
![Page 95: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/95.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Lemos strings com espaços usando a função fgets:
• primeiro parâmetro: nome da variável• segundo parâmetro: tamanho máximo da string
– contando o '\0'
• terceiro parâmetro: de qual arquivo devemos ler
– estamos da entrada padrão, por isso passamos stdin
O fgets lê apenas até o primeiro '\n'• e pode incluir o '\n' na string
14
![Page 96: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/96.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Lemos strings com espaços usando a função fgets:• primeiro parâmetro: nome da variável
• segundo parâmetro: tamanho máximo da string
– contando o '\0'
• terceiro parâmetro: de qual arquivo devemos ler
– estamos da entrada padrão, por isso passamos stdin
O fgets lê apenas até o primeiro '\n'• e pode incluir o '\n' na string
14
![Page 97: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/97.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Lemos strings com espaços usando a função fgets:• primeiro parâmetro: nome da variável• segundo parâmetro: tamanho máximo da string
– contando o '\0'• terceiro parâmetro: de qual arquivo devemos ler
– estamos da entrada padrão, por isso passamos stdin
O fgets lê apenas até o primeiro '\n'• e pode incluir o '\n' na string
14
![Page 98: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/98.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Lemos strings com espaços usando a função fgets:• primeiro parâmetro: nome da variável• segundo parâmetro: tamanho máximo da string
– contando o '\0'
• terceiro parâmetro: de qual arquivo devemos ler
– estamos da entrada padrão, por isso passamos stdin
O fgets lê apenas até o primeiro '\n'• e pode incluir o '\n' na string
14
![Page 99: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/99.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Lemos strings com espaços usando a função fgets:• primeiro parâmetro: nome da variável• segundo parâmetro: tamanho máximo da string
– contando o '\0'• terceiro parâmetro: de qual arquivo devemos ler
– estamos da entrada padrão, por isso passamos stdin
O fgets lê apenas até o primeiro '\n'• e pode incluir o '\n' na string
14
![Page 100: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/100.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Lemos strings com espaços usando a função fgets:• primeiro parâmetro: nome da variável• segundo parâmetro: tamanho máximo da string
– contando o '\0'• terceiro parâmetro: de qual arquivo devemos ler
– estamos da entrada padrão, por isso passamos stdin
O fgets lê apenas até o primeiro '\n'• e pode incluir o '\n' na string
14
![Page 101: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/101.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Lemos strings com espaços usando a função fgets:• primeiro parâmetro: nome da variável• segundo parâmetro: tamanho máximo da string
– contando o '\0'• terceiro parâmetro: de qual arquivo devemos ler
– estamos da entrada padrão, por isso passamos stdin
O fgets lê apenas até o primeiro '\n'
• e pode incluir o '\n' na string
14
![Page 102: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/102.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Lemos strings com espaços usando a função fgets:• primeiro parâmetro: nome da variável• segundo parâmetro: tamanho máximo da string
– contando o '\0'• terceiro parâmetro: de qual arquivo devemos ler
– estamos da entrada padrão, por isso passamos stdin
O fgets lê apenas até o primeiro '\n'• e pode incluir o '\n' na string
14
![Page 103: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/103.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Por que colocamos o espaço após o %s na linha 4?• para consumir os espaços em branco depois da string...
Caso contrário, o fgets poderia ler apenas o \n após o padrão
15
![Page 104: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/104.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Por que colocamos o espaço após o %s na linha 4?
• para consumir os espaços em branco depois da string...
Caso contrário, o fgets poderia ler apenas o \n após o padrão
15
![Page 105: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/105.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Por que colocamos o espaço após o %s na linha 4?• para consumir os espaços em branco depois da string...
Caso contrário, o fgets poderia ler apenas o \n após o padrão
15
![Page 106: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/106.jpg)
Função main1 int main(){2 int i;3 char texto[MAX], padrao[MAX];4 scanf("%s ", padrao);5 fgets(texto, MAX, stdin);6 printf("Procurando por %s no texto: %s\n", padrao, texto);7 for (i = 0; texto[i] != '\0'; i++)8 if (ocorre(texto, i, padrao))9 imprime_trecho(texto, i, tamanho(padrao));10 return 0;11 }
Por que colocamos o espaço após o %s na linha 4?• para consumir os espaços em branco depois da string...
Caso contrário, o fgets poderia ler apenas o \n após o padrão
15
![Page 107: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/107.jpg)
A biblioteca string.h
A biblioteca string.h tem várias funções úteis:
strlen devolve o tamanho da stringstrcmp compara duas strings já que não podemos usar
<, <=, >, >=, == e !=strcpy copia uma stringstrcat concatena duas strings
entre outras...
Veja o manual para a documentação• exemplo: man strlen
Não confunda com a biblioteca strings.h
16
![Page 108: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/108.jpg)
A biblioteca string.h
A biblioteca string.h tem várias funções úteis:strlen devolve o tamanho da string
strcmp compara duas strings já que não podemos usar<, <=, >, >=, == e !=
strcpy copia uma stringstrcat concatena duas strings
entre outras...
Veja o manual para a documentação• exemplo: man strlen
Não confunda com a biblioteca strings.h
16
![Page 109: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/109.jpg)
A biblioteca string.h
A biblioteca string.h tem várias funções úteis:strlen devolve o tamanho da stringstrcmp compara duas strings já que não podemos usar
<, <=, >, >=, == e !=
strcpy copia uma stringstrcat concatena duas strings
entre outras...
Veja o manual para a documentação• exemplo: man strlen
Não confunda com a biblioteca strings.h
16
![Page 110: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/110.jpg)
A biblioteca string.h
A biblioteca string.h tem várias funções úteis:strlen devolve o tamanho da stringstrcmp compara duas strings já que não podemos usar
<, <=, >, >=, == e !=strcpy copia uma string
strcat concatena duas stringsentre outras...
Veja o manual para a documentação• exemplo: man strlen
Não confunda com a biblioteca strings.h
16
![Page 111: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/111.jpg)
A biblioteca string.h
A biblioteca string.h tem várias funções úteis:strlen devolve o tamanho da stringstrcmp compara duas strings já que não podemos usar
<, <=, >, >=, == e !=strcpy copia uma stringstrcat concatena duas strings
entre outras...
Veja o manual para a documentação• exemplo: man strlen
Não confunda com a biblioteca strings.h
16
![Page 112: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/112.jpg)
A biblioteca string.h
A biblioteca string.h tem várias funções úteis:strlen devolve o tamanho da stringstrcmp compara duas strings já que não podemos usar
<, <=, >, >=, == e !=strcpy copia uma stringstrcat concatena duas strings
entre outras...
Veja o manual para a documentação• exemplo: man strlen
Não confunda com a biblioteca strings.h
16
![Page 113: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/113.jpg)
A biblioteca string.h
A biblioteca string.h tem várias funções úteis:strlen devolve o tamanho da stringstrcmp compara duas strings já que não podemos usar
<, <=, >, >=, == e !=strcpy copia uma stringstrcat concatena duas strings
entre outras...
Veja o manual para a documentação
• exemplo: man strlen
Não confunda com a biblioteca strings.h
16
![Page 114: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/114.jpg)
A biblioteca string.h
A biblioteca string.h tem várias funções úteis:strlen devolve o tamanho da stringstrcmp compara duas strings já que não podemos usar
<, <=, >, >=, == e !=strcpy copia uma stringstrcat concatena duas strings
entre outras...
Veja o manual para a documentação• exemplo: man strlen
Não confunda com a biblioteca strings.h
16
![Page 115: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/115.jpg)
A biblioteca string.h
A biblioteca string.h tem várias funções úteis:strlen devolve o tamanho da stringstrcmp compara duas strings já que não podemos usar
<, <=, >, >=, == e !=strcpy copia uma stringstrcat concatena duas strings
entre outras...
Veja o manual para a documentação• exemplo: man strlen
Não confunda com a biblioteca strings.h
16
![Page 116: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/116.jpg)
Tipos mais comuns do C
dado tipo formato ex. de constanteinteiros int %d 10
ponto flutuante float%f 10.0f%g 2e-3f%e
ponto flutuante(precisão dupla) double
%lf 10.0%lg 2e-3%le
caractere char %c 'c'
string char [] %s "string"
Lembrando que %s lê strings sem espaço
17
![Page 117: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/117.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi
– pelo menos 16 bits
• int - %d ou %i
– pelo menos 16 bits
• long ou long int - %li
– pelo menos 32 bits
• long long ou long long int - %lli
– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 118: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/118.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi
– pelo menos 16 bits• int - %d ou %i
– pelo menos 16 bits
• long ou long int - %li
– pelo menos 32 bits
• long long ou long long int - %lli
– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 119: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/119.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi– pelo menos 16 bits
• int - %d ou %i
– pelo menos 16 bits
• long ou long int - %li
– pelo menos 32 bits
• long long ou long long int - %lli
– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 120: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/120.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi– pelo menos 16 bits
• int - %d ou %i
– pelo menos 16 bits• long ou long int - %li
– pelo menos 32 bits
• long long ou long long int - %lli
– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 121: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/121.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi– pelo menos 16 bits
• int - %d ou %i– pelo menos 16 bits
• long ou long int - %li
– pelo menos 32 bits
• long long ou long long int - %lli
– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 122: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/122.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi– pelo menos 16 bits
• int - %d ou %i– pelo menos 16 bits
• long ou long int - %li
– pelo menos 32 bits• long long ou long long int - %lli
– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 123: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/123.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi– pelo menos 16 bits
• int - %d ou %i– pelo menos 16 bits
• long ou long int - %li– pelo menos 32 bits
• long long ou long long int - %lli
– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 124: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/124.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi– pelo menos 16 bits
• int - %d ou %i– pelo menos 16 bits
• long ou long int - %li– pelo menos 32 bits
• long long ou long long int - %lli
– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 125: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/125.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi– pelo menos 16 bits
• int - %d ou %i– pelo menos 16 bits
• long ou long int - %li– pelo menos 32 bits
• long long ou long long int - %lli– pelo menos 64 bits
– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 126: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/126.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi– pelo menos 16 bits
• int - %d ou %i– pelo menos 16 bits
• long ou long int - %li– pelo menos 32 bits
• long long ou long long int - %lli– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 127: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/127.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi– pelo menos 16 bits
• int - %d ou %i– pelo menos 16 bits
• long ou long int - %li– pelo menos 32 bits
• long long ou long long int - %lli– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma
• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 128: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/128.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi– pelo menos 16 bits
• int - %d ou %i– pelo menos 16 bits
• long ou long int - %li– pelo menos 32 bits
• long long ou long long int - %lli– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits
• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 129: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/129.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi– pelo menos 16 bits
• int - %d ou %i– pelo menos 16 bits
• long ou long int - %li– pelo menos 32 bits
• long long ou long long int - %lli– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 130: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/130.jpg)
Outros tiposTemos variações de tamanho para int:
• short ou short int - %hi– pelo menos 16 bits
• int - %d ou %i– pelo menos 16 bits
• long ou long int - %li– pelo menos 32 bits
• long long ou long long int - %lli– pelo menos 64 bits– não suportado por C89
A quantidade de bits pode variar de acordo com a plataforma• por exemplo, int em geral tem 32 bits• mas a especificação diz pelo menos 16 bits
A vantagem é poder escolher entre economizar memória ourepresentar mais números
18
![Page 131: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/131.jpg)
Outros tiposTemos também as versões sem sinal (unsigned):
• unsigned char - (%c)• unsigned short ou unsigned short int - (%hu)• unsigned ou unsigned int - (%u)• unsigned long ou unsigned long int - (%lu)• unsigned long long ou unsigned long long int -
(%llu)
– não suportado por C89
A vantagem do unsigned:• se você for trabalhar apenas com números não-negativos, você
consegue representar mais números...
Em geral, trabalhamos apenas com os tipos básicos• int, double e char
19
![Page 132: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/132.jpg)
Outros tiposTemos também as versões sem sinal (unsigned):
• unsigned char - (%c)
• unsigned short ou unsigned short int - (%hu)• unsigned ou unsigned int - (%u)• unsigned long ou unsigned long int - (%lu)• unsigned long long ou unsigned long long int -
(%llu)
– não suportado por C89
A vantagem do unsigned:• se você for trabalhar apenas com números não-negativos, você
consegue representar mais números...
Em geral, trabalhamos apenas com os tipos básicos• int, double e char
19
![Page 133: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/133.jpg)
Outros tiposTemos também as versões sem sinal (unsigned):
• unsigned char - (%c)• unsigned short ou unsigned short int - (%hu)
• unsigned ou unsigned int - (%u)• unsigned long ou unsigned long int - (%lu)• unsigned long long ou unsigned long long int -
(%llu)
– não suportado por C89
A vantagem do unsigned:• se você for trabalhar apenas com números não-negativos, você
consegue representar mais números...
Em geral, trabalhamos apenas com os tipos básicos• int, double e char
19
![Page 134: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/134.jpg)
Outros tiposTemos também as versões sem sinal (unsigned):
• unsigned char - (%c)• unsigned short ou unsigned short int - (%hu)• unsigned ou unsigned int - (%u)
• unsigned long ou unsigned long int - (%lu)• unsigned long long ou unsigned long long int -
(%llu)
– não suportado por C89
A vantagem do unsigned:• se você for trabalhar apenas com números não-negativos, você
consegue representar mais números...
Em geral, trabalhamos apenas com os tipos básicos• int, double e char
19
![Page 135: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/135.jpg)
Outros tiposTemos também as versões sem sinal (unsigned):
• unsigned char - (%c)• unsigned short ou unsigned short int - (%hu)• unsigned ou unsigned int - (%u)• unsigned long ou unsigned long int - (%lu)
• unsigned long long ou unsigned long long int -(%llu)
– não suportado por C89
A vantagem do unsigned:• se você for trabalhar apenas com números não-negativos, você
consegue representar mais números...
Em geral, trabalhamos apenas com os tipos básicos• int, double e char
19
![Page 136: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/136.jpg)
Outros tiposTemos também as versões sem sinal (unsigned):
• unsigned char - (%c)• unsigned short ou unsigned short int - (%hu)• unsigned ou unsigned int - (%u)• unsigned long ou unsigned long int - (%lu)• unsigned long long ou unsigned long long int -
(%llu)
– não suportado por C89
A vantagem do unsigned:• se você for trabalhar apenas com números não-negativos, você
consegue representar mais números...
Em geral, trabalhamos apenas com os tipos básicos• int, double e char
19
![Page 137: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/137.jpg)
Outros tiposTemos também as versões sem sinal (unsigned):
• unsigned char - (%c)• unsigned short ou unsigned short int - (%hu)• unsigned ou unsigned int - (%u)• unsigned long ou unsigned long int - (%lu)• unsigned long long ou unsigned long long int -
(%llu)– não suportado por C89
A vantagem do unsigned:• se você for trabalhar apenas com números não-negativos, você
consegue representar mais números...
Em geral, trabalhamos apenas com os tipos básicos• int, double e char
19
![Page 138: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/138.jpg)
Outros tiposTemos também as versões sem sinal (unsigned):
• unsigned char - (%c)• unsigned short ou unsigned short int - (%hu)• unsigned ou unsigned int - (%u)• unsigned long ou unsigned long int - (%lu)• unsigned long long ou unsigned long long int -
(%llu)– não suportado por C89
A vantagem do unsigned:
• se você for trabalhar apenas com números não-negativos, vocêconsegue representar mais números...
Em geral, trabalhamos apenas com os tipos básicos• int, double e char
19
![Page 139: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/139.jpg)
Outros tiposTemos também as versões sem sinal (unsigned):
• unsigned char - (%c)• unsigned short ou unsigned short int - (%hu)• unsigned ou unsigned int - (%u)• unsigned long ou unsigned long int - (%lu)• unsigned long long ou unsigned long long int -
(%llu)– não suportado por C89
A vantagem do unsigned:• se você for trabalhar apenas com números não-negativos, você
consegue representar mais números...
Em geral, trabalhamos apenas com os tipos básicos• int, double e char
19
![Page 140: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/140.jpg)
Outros tiposTemos também as versões sem sinal (unsigned):
• unsigned char - (%c)• unsigned short ou unsigned short int - (%hu)• unsigned ou unsigned int - (%u)• unsigned long ou unsigned long int - (%lu)• unsigned long long ou unsigned long long int -
(%llu)– não suportado por C89
A vantagem do unsigned:• se você for trabalhar apenas com números não-negativos, você
consegue representar mais números...
Em geral, trabalhamos apenas com os tipos básicos
• int, double e char
19
![Page 141: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/141.jpg)
Outros tiposTemos também as versões sem sinal (unsigned):
• unsigned char - (%c)• unsigned short ou unsigned short int - (%hu)• unsigned ou unsigned int - (%u)• unsigned long ou unsigned long int - (%lu)• unsigned long long ou unsigned long long int -
(%llu)– não suportado por C89
A vantagem do unsigned:• se você for trabalhar apenas com números não-negativos, você
consegue representar mais números...
Em geral, trabalhamos apenas com os tipos básicos• int, double e char
19
![Page 142: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/142.jpg)
Exercício
Faça uma função void copia(char str1[], char str2[])que copia o conteúdo de str1 para str2.
20
![Page 143: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/143.jpg)
Exercício
Faça uma função void reverte(char str[]) que reverte oconteúdo de str.
Exemplo: Se a string era "MC202", a string deve passar a ser"202CM".
21
![Page 144: MC-202 Curso de C - Parte 3lehilton/mc202def/unidade04-c3.pdf · Cifra de César A Cifra de César é uma das formas mais simples de criptografia • E uma das mais fáceis de quebrar...](https://reader035.fdocuments.ec/reader035/viewer/2022070822/5f2878139df78139e52a7d3e/html5/thumbnails/144.jpg)
Exercício
Faça uma função int compara(char str1[], char str2[])que
• devolve 0 se as strings são iguais• devolve um número menor do que zero se str1 é
lexograficamente menor do que str2• devolve um número maior do que zero caso contrário
22