A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

– coinf.cm.utfpr.edu.br 1 Prof. Reginaldo Ré Universidade Tecnológica Federal.

Apresentações semelhantes


Apresentação em tema: "– coinf.cm.utfpr.edu.br 1 Prof. Reginaldo Ré Universidade Tecnológica Federal."— Transcrição da apresentação:

1 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 1 Prof. Reginaldo Ré reginaldo@utfpr.edu.br http://coinf.cm.utfpr.edu.br Universidade Tecnológica Federal do Paraná – Campus Campo Mourão COINT - Coordenação do Curso Superior de Tecnologia em Sistemas para Internet Introdução à Programação usando Linguagem C

2 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 2 Aulas adaptadas dos materiais... Do. Prof. Rogério Aparecido Gonçalves –http://coinf.cm.utfpr.edu.br/docentes/rogerioag Do Prof. Leandro Galvão –www.dcc.ufam.edu.br/~galvao/ De Allan Diego Silva Lima –http://allanlima.wordpress.com/

3 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 3 Aula 3 - Sumário Procedimentos e Funções Escopo de variáveis: global e local Parâmetros Formas e reais Passagem por valor Passagem por referência Recursividade Variáveis Compostas Estruturas de Dados Homogêneas Unidimensional Bidimensional Multidimensional Estruturas de Dados Heterogêneas Strings

4 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 4 Procedimentos – são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento é chamado. Funções – são procedimentos que retornam um valor ao seu término. A Linguagem C não faz distinção. Procedimentos e Funções

5 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 5 Porque utilizar procedimentos e funções? Evitam que os blocos do programa fiquem grandes demais e mais difíceis de ler e entender. Ajudam a organizar o programa. Permitem reaproveitamento de códigos construídos anteriormente. Evitam repetição de trechos de códigos, minimizando erros e facilitando alterações. Implementam a estratégia de solução de problemas “dividir e conquistar”

6 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 6 nome_da_função ( arg1, arg2,..., argN) { return valor_de_retorno; } nome_da_função ( arg1, arg2,..., argN) { return valor_de_retorno; } Funções: Como declarar

7 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 7 int soma(int a, int b) { int c; c = a + b; return c; } int soma(int a, int b) { int c; c = a + b; return c; } Exemplo de uma função: Funções: Como declarar

8 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 8 int soma(int a, int b) { int c; c = a + b; return c; } int soma(int a, int b) { int c; c = a + b; return c; } Funções: Como declarar Toda função deve ter um tipo (char, int, float), o qual indicará o tipo de seu valor de retorno (saída). Os argumentos (ou parâmetros) indicam o tipo e quais valores são esperados para serem manipulados pela função (entrada). Corpo da função

9 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 9 int random() { srand(time(NULL)); return (rand() % 100); } int random() { srand(time(NULL)); return (rand() % 100); } Uma função pode não ter parâmetros, basta não informá-los. Exemplo: Funções: Como declarar

10 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 10 A expressão contida no comando return é chamado de valor de retorno da função. Esse comando é sempre o último a ser executado por uma função. Nada após ele será executado. As funções só podem ser declaradas fora de outras funções. Lembre-se que o corpo do programa principal ( main() ) é uma função! Funções: Como declarar

11 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 11 Uma forma clássica de realizarmos a invocação (ou chamada) de uma função é atribuindo o seu valor a uma variável: Na verdade, o resultado da chamada de uma função é uma expressão, que pode ser usada em qualquer lugar que aceite uma expressão: resultado = soma(x,y); printf("Soma: %d\n", soma(a,b) ); Funções: Invocando

12 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 12 int x, y, resultado; int soma(int a, int b){ return (a + b); } int main(){ x = 3; y = 5; resultado = soma(x, y); printf("%d\n", resultado); } int x, y, resultado; int soma(int a, int b){ return (a + b); } int main(){ x = 3; y = 5; resultado = soma(x, y); printf("%d\n", resultado); } Funções: Invocando Função que calcula a soma dos valores de x e y:

13 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 13 As variáveis x e y no exemplo anterior são chamadas de parâmetros reais. Conforme exemplo anterior, os argumentos não possuem necessariamente os mesmos nomes que os parâmetros que a função espera. Seus valores são apenas copiados para a função chamada, sem ser afetados pelas alterações nos parâmetros dentro da função. Funções: Invocando

14 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 14 Funções: Invocando O valor que será retornado para o chamador da função. Deve respeitar o tipo de retorno declarado.

15 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 15 Exercícios Modificar o programa do cálculo da média para que utilize uma função media(...) no cálculo. Modificar o programa do cálculo de IMC para que utilize uma função imc(...) no cálculo. É possível resolver esses exercicios ? Ler um número e chamar uma função que retorna o dobro e o quadrado do número. Ler o valor do lado de um cubo e chamar uma função que retorne sua área (6. lado²) e seu volume (lado³). Ler os coeficientes (a, b, c) de uma equação do 2º grau e chamar uma função que retorne o valor do delta e das raízes.

16 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 16 O tipo void É utilizado em procedimentos. É um tipo que representa o “nada”, ou seja: –uma variável desse tipo armazena conteúdo indeterminado, –uma função desse tipo retorna um conteúdo indeterminado. Indica que uma função não retorna nenhum valor, ou seja, é um procedimento.

17 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 17 void nome_do_procedimento ( parâmetro1, parâmetro2,..., parâmetroN) { } void nome_do_procedimento ( parâmetro1, parâmetro2,..., parâmetroN) { } Procedimentos: Como declarar

18 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 18 void imprime_dobro(int x) { printf("Dobro de x: %d", 2*x); } void imprime_dobro(int x) { printf("Dobro de x: %d", 2*x); } Exemplo de procedimento: Procedimentos: Como declarar

19 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 19 Para invocarmos um procedimento, devemos utilizá-lo como qualquer outro comando: Compare a diferença de invocação de uma função: procedimento(parâmetros); resultado = função(parâmetros); Procedimentos: Invocando

20 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 20 int x, y, resultado; void soma() { resultado = x + y; } int main() { x = 3; y = 5; soma(); printf("%d\n", resultado); } int x, y, resultado; void soma() { resultado = x + y; } int main() { x = 3; y = 5; soma(); printf("%d\n", resultado); } Procedimentos: Invocando

21 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 21 É uma função especial invocada automaticamente pelo sistema operacional (OS) ao iniciar o programa. Quando utilizado, o comando return informa ao OS se o programa funcionou corretamente ou não. O padrão é que um programa retorne: –= zero – caso tenha funcionado corretamente, –≠ zero – caso contrário. A função main()

22 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 22 Uma variável é chamada local quando é declarada dentro de uma função. Nesse caso: –Ela existe apenas dentro da função que a contém. –Após o término da execução da função, ela deixa de existir. Uma variável é chamada global quando é declarada fora de qualquer função. Nesse caso: –Pode ser acessada em qualquer parte do programa. –Ela existe durante toda a execução do programa. Variáveis locais e globais

23 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 23 Boa prática de programação: –Deve-se evitar o uso de variáveis globais. –As funções devem modificar apenas as suas variáveis locais e as variáveis passadas a elas como parâmetros. Variáveis locais e globais

24 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 24 O escopo de uma variável determina de que partes do código ela pode ser acessada. A regra de escopo em C é bem simples: –As variáveis globais são visíveis por todas as funções. –As variáveis locais são visíveis apenas na função onde foram declaradas. Escopo de variáveis

25 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 25 int nota; void funcao() { int nota; // Neste ponto, nota eh variavel local. } int nota; void funcao() { int nota; // Neste ponto, nota eh variavel local. } Escopo de variáveis É possível declarar variáveis locais com o mesmo nome de variáveis globais. Nesta situação, a variável local “esconde” a variável global.

26 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 26 Parâmetros ou argumentos são os valores recebidos e/ou retornados por uma função. Podem ser divididos em duas categorias: –Formais: correspondem aos parâmetros utilizados na definição da função. –Reais: correspondem aos parâmetros da função chamadora utilizados para chamar a função. Parâmetros

27 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 27 int soma(int a, int b) { return (a + b); } int main() { int x = 3; int y = 5; printf("%d\n", soma(x + y)); } int soma(int a, int b) { return (a + b); } int main() { int x = 3; int y = 5; printf("%d\n", soma(x + y)); } Parâmetros reais Parâmetros formais Parâmetros

28 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 28 É o mecanismo de informar sobre quais valores o processamento definido na função deve ser realizado. Os parâmetros são passados para uma função de acordo com a sua posição. Os parâmetros formais de uma função se comportam como variáveis locais (criados na entrada e destruídos na saída) Existem duas categorias: –Por valor –Por referência Passagem de Parâmetros

29 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 29 1011 0011 1111 0101 0101 1010 0001 1001 0000 0001 1011 0011 1111 0101 0101 1010 0001 1001 0000 0001 1011 0011 1111 0101 0101 1010 0001 1001 0000 0001 1011 0011 1111 0101 0101 1010 0001 1001 0000 0001 1011 0011 1111 0101 0101 1010 0001 1001 var var_interna 1111 0101 0101 1010 0001 1001 0000 0001 Passagem de Parâmetros por Valor Os valores das variáveis externas (função chamadora) são copiados para as variáveis internas da função chamada. Alteração no valor das variáveis terá efeito local à função chamada.

30 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 30 Os valores das vari á veis externas não são passados para a fun ç ão, mas sim os seus endere ç os. Ocorre altera ç ão no valor das vari á veis externas. Usamos os caracteres: & - indica o endere ç o da vari á vel * - indica o conte ú do do apontador Passagem de Parâmetros por Referência

31 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 31 1011 0011 1111 0101 0101 1010 0001 1001 0000 0001 1011 0011 1111 0101 0101 1010 0001 1001 0000 0001 1011 0011 1111 0101 0101 1010 0001 1001 0000 0001 1011 0011 1111 0101 0101 1010 0001 1001 0000 0001 1011 0011 1111 0101 0101 1010 0001 1001 var Passagem de Parâmetros por Referência

32 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 32 Exercícios Ler um número e chamar uma função que retorna o dobro e o quadrado do número. Ler o valor do lado de um cubo e chamar uma função que retorne sua área (6. lado²) e seu volume (lado³). Ler os coeficientes (a, b, c) de uma equação do 2º grau e chamar uma função que retorne o valor do delta e das raízes.

33 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 33 Funções podem invocar funções

34 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 34 Um objeto é dito recursivo se pode ser definido em termos de si próprio. “Para fazer iogurte, você precisa de leite e de um pouco de iogurte.” “Para entender recursividade, você primeiro tem de entender recursividade.” Funções: Recursividade

35 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 35 A recursão é uma forma interessante de resolver problemas, pois o divide em problemas menores de mesma natureza. Um processo recursivo consiste de duas partes: –O caso trivial, cuja solução é conhecida. –Um método geral que reduz o problema a um ou mais problemas menores de mesma natureza. Funções: Recursividade

36 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 36 Cálculo do fatorial: fat(n) = 1, se n = 1 n * fat(n-1), se n > 1 Recursividade – Fatorial

37 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 37 Implemente um programa que receba como entrada um valor X qualquer e mostre como saída o fatorial de X. Utilize uma função para calcular o fatorial. Exercício

38 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 38 int fat(int n) { if (n != 1) return n * fat(n-1); else return 1; } int fat(int n) { if (n != 1) return n * fat(n-1); else return 1; } Função recursiva que calcula o fatorial de um número: Recursividade – Fatorial

39 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 39 Certos algoritmos são mais eficientes quando feitos de maneira recursiva. Contudo, quando usada incorretamente, a recursividade tende a consumir muita memória e ser lenta. Um parcela da memória é reservada cada vez que o computador faz chamada a uma função. Compare as duas implementações da série de Fibonacci, uma realizada de forma iterativa e outra de forma recursiva. Recursividade – Série de Fibonacci

40 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 40 São um conjunto de variáveis identificadas por um mesmo nome. –Homogêneas (vetores e matrizes) –Heterogêneas (estruturas) Variáveis Compostas

41 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 41 6,12,39,45,18,99,8107,06,34,4 0123456789 Notas: Posição: Variáveis Compostas Homogêneas Correspondem a posições da memória: –identificadas por um único nome –individualizadas por índices –cujo conteúdo é de um mesmo tipo

42 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 42 Posição do livro 012…n-1 0788598265…156 1145258369…196 2989565345…526 ⋮⋮⋮⋮⋱⋮ m-1845153564892210 Prateleira Variáveis Compostas Homogêneas: Exemplo

43 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 43 Utilizados para armazenar conjuntos de dados cujos elementos podem ser endereçados por um único índice. Também são conhecidos como vetores. Arranjos unidimensionais

44 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 44 Utilizados para armazenar conjuntos de dados cujos elementos necessitam ser endereçados por mais de um índice. Também são conhecidos como arrays ou matrizes. Arranjos multidimensionais

45 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 45 012…n-1 0788598265…156 1145258369…196 2989565345…526 ⋮⋮⋮⋮⋱⋮ m-1845153564892210 Arranjos de 2 dimensões Arranjos multidimensionais: Exemplos

46 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 46 0123 0 1 2 3 0 0123 0 1 2 3 1 0123 0 1 2 3 2 0123 0 1 2 3 3 Arranjo de 3 dimensões Arranjos multidimensionais: Exemplos

47 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 47 0123 0 1 2 3 (0,0) 0123 0 1 2 3 (0,1) 0123 0 1 2 3 (0,2) 0123 0 1 2 3 (0,3) 0123 0 1 2 3 (1,0) 0123 0 1 2 3 (1,1) 0123 0 1 2 3 (1,2) 0123 0 1 2 3 (1,3) Arranjo de 4 dimensões Arranjos multidimensionais: Exemplos

48 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 48 Como declarar: Exemplos: [ ][ ]...; float VetReais[100]; int Vetor[5][9]; char Nome_cliente[50]; float cubo[20][12][7]; float VetReais[100]; int Vetor[5][9]; char Nome_cliente[50]; float cubo[20][12][7]; Vetores e Matrizes na Linguagem C

49 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 49 O compilador C aloca uma porção contígua da memória para armazenar os elementos das matrizes e vetores. Vetores e Matrizes na Linguagem C

50 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 50 int VetInt[n];... Índices:012345...n-1 VetInt Índice do primeiro elemento: zero Índice do último elemento:n – 1 Quantidade de elementos:n Vetores e Matrizes na Linguagem C

51 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 51 012345 Vetor[6] X1 X2 Vetor[1] = 9; Vetor[-1] = 2; Vetor[6] = 8; Vetor[1] = 9; Vetor[-1] = 2; Vetor[6] = 8; 289 Vetores e Matrizes na Linguagem C Índices fora dos limites podem causar comportamento anômalo do código. int X1; int Vetor[6]; int X2 int X1; int Vetor[6]; int X2

52 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 52 Vetores e Matrizes na Linguagem C O tamanho de um vetor ou matriz é pré-definido, ou seja, após a compilação, não pode ser mudado. Portanto, vetores e matrizes são chamadas estruturas de dados estáticas, pois mantém o mesmo tamanho ao longo de toda a execução do programa.

53 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 53 Atribuir valores na declaração do vetor: Atribuir valores na declaração da matriz: float matriz[2][3] = {{1,2,3},{4,5,6}}; int vetor[5] = {1,2,3,4,5}; Vetores e Matrizes na Linguagem C: Exemplos

54 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 54 Colocar os números de 1 a 5 num vetor: Colocar os números de 5 a 1 num vetor: for (i=0; i<5; i++) Vetor[i] = 5 - i; for (i=0; i<5; i++) Vetor[i] = 5 - i; for (i=0; i<5; i++) Vetor[i] = i + 1; for (i=0; i<5; i++) Vetor[i] = i + 1; Vetores e Matrizes na Linguagem C: Exemplos

55 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 55 Preencher uma matriz n × m com zeros: for (i=0; i < N; i++) for (j=0; j < M; j++) Matriz[i][j] = 0; for (i=0; i < N; i++) for (j=0; j < M; j++) Matriz[i][j] = 0; Vetores e Matrizes na Linguagem C: Exemplos

56 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 56 Copiar dados de um vetor para outro: Boa prática de programação: –Definir o tamanho de vetores com constantes flexibiliza a manutenção do código. #define TAM_MAX 10 double VetReais[TAM_MAX], VetCopia[TAM_MAX]; for (i=0; i { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.com.br/8/2264170/slides/slide_56.jpg", "name": "reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 56 Copiar dados de um vetor para outro: Boa prática de programação: –Definir o tamanho de vetores com constantes flexibiliza a manutenção do código.", "description": "#define TAM_MAX 10 double VetReais[TAM_MAX], VetCopia[TAM_MAX]; for (i=0; i

57 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 57 Leitura dos dados de um vetor: for (i=0; i { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.com.br/8/2264170/slides/slide_57.jpg", "name": "reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 57 Leitura dos dados de um vetor: for (i=0; i

58 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 58 Determinar: 1.M[3][0] 2.M[4][2] 3.M[1][3] 4.M[5][M[0][2]] 5.M[M[3][1]][1] 6.M[4][(M[1][2]+M[3][0])] 0123 01234 15-530 21111 3-3200 40011 5 -2 1.-3 2.1 3.0 4.-2 5.1 6.0 Vetores e Matrizes na Linguagem C: Exercício 1

59 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 59 Ler um elemento K. Ler um vetor A de N elementos. Verificar se o elemento K está presente no vetor: –Se estiver, imprimir a posição onde ele foi encontrado. –Caso contrário, imprimir mensagem "elemento K não encontrado". Vetores e Matrizes na Linguagem C: Exercício 2

60 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 60 Ler N valores inteiros (N ≤ 100) até que seja digitado o valor zero. A seguir, inverter o vetor, trocando o 1º elemento com o último, o 2º com o penúltimo, e assim sucessivamente. Ao final, imprimir o vetor invertido. Vetores e Matrizes na Linguagem C: Exercícios

61 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 61 Faça um programa que gere e imprima uma matriz quadrada de dimensão N contendo: –o número 1 nos elementos abaixo da diagonal principal –o número 0 nos demais elementos N deve ser menor ou igual a 20. Vetores e Matrizes na Linguagem C: Exercícios

62 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 62 Uma string é um vetor de caracteres, cujo final é indicado com um caractere nulo (valor inteiro zero). O terminador nulo também pode ser escrito como '\0‘. Ao definir uma string, deve-se levar em consideração, além do número de caracteres da string, o caractere nulo que termina a string. Strings

63 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 63 Função gets() –Lê string até o primeiro enter Função scanf() –Lê string até o primeiro espaço em branco Strings: Leitura a partir do teclado

64 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 64 char curso[15] = "Engenharia"; // Valido somente na // declaracao! char curso[15] = "Engenharia"; // Valido somente na // declaracao! char curso[15]; strcpy(curso,"Engenharia " ); // Requer biblioteca // string.h char curso[15]; strcpy(curso,"Engenharia " ); // Requer biblioteca // string.h Strings: Atribuição de valores

65 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 65 A Linguagem C possui algumas funções especiais para análise e manipulação de caracteres. Tais funções estão definidas na biblioteca ctype.h A biblioteca ctype.h possibilita a manipulação de caracteres, não de strings inteiras. Manipulação de caracteres

66 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 66 Função toupper –Converte seu argumento para uma letra maiúscula: Função tolower –Converte seu argumento para uma letra minúscula: = toupper(var2); = tolower(var2); Manipulação de caracteres: Funções tolower e toupper

67 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 67 FunçãoTesta se seu argumento é um isalnumcaractere alfanumérico isalphacaractere alfabético isasciicaractere ASCII (0 a 127) iscntrlcaractere de controle (0-0x1F ou 0x7F) isgraph caractere imprimível na tela (não leva espaço em consideração) isprint caractere imprimível na tela (leva espaço em consideração) Manipulação de caracteres: Outras funções

68 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 68 FunçãoTesta se seu argumento é um islowercaractere minúsculo isuppercaractere maiúsculo ispunctcaractere de pontuação isspacecaractere de espaço, tabulação isdigitcaractere numérico (0-9) isxdigitdígito hexadecimal (0-9, a-f ou A-F) Manipulação de caracteres: Outras funções

69 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 69 A Linguagem C possui funções especiais para análise e manipulação de strings. Tais funções estão definidas na biblioteca string.h. A biblioteca string.h possibilita a manipulação de strings completas (sem considerar caractere a caractere). Manipulação de strings: Biblioteca string.h

70 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 70 strcat(str1, str2) Concatena str2 ao final de str1 int tam = strlen(str1); Retorna o tamanho de str1 Manipulação de strings: Biblioteca string.h

71 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 71 int valor = strcmp(str1, str2); –valor = 0, se str1 e str2 são iguais; –valor < 0, se str1 < str2; –valor > 0, se str1 > str2; int valor = strcmpi(str1, str2); Mesmo que strcmp, mas não é sensível ao caso Manipulação de strings: Biblioteca string.h

72 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 72 strupr(str) Converte uma string para maiúsculas. strlwr(str) Converte uma string para minúsculas. strrev(str) Inverte o conteúdo de uma string. strset(str,char) Substitui todos os caracteres de uma string pelo caractere especificado. Manipulação de strings: Biblioteca string.h

73 reginaldo@utfpr.edu.br – coinf.cm.utfpr.edu.br 73 A seguintes funções fazem parte da biblioteca stdlib.h FunçãoConverte atoi( ) String em int atof( ) String em float itoa( ) Int em string Manipulação de strings: Conversão para números


Carregar ppt "– coinf.cm.utfpr.edu.br 1 Prof. Reginaldo Ré Universidade Tecnológica Federal."

Apresentações semelhantes


Anúncios Google