1 / 13

Nivelamento de C: Vetores e Strings

Nivelamento de C: Vetores e Strings. CONTEÚDO (1) Exercícios de Revisão (2) Vetores (3) Strings. (1) Exercícios de Revisão. Antes de prosseguir para vetores e strings. Implemente o que se pede:

tanek
Download Presentation

Nivelamento de C: Vetores e Strings

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nivelamento de C:Vetores e Strings CONTEÚDO (1) Exercícios de Revisão (2) Vetores (3) Strings

  2. (1)Exercícios de Revisão Antes de prosseguir para vetores e strings... • Implemente o que se pede: • Faça um programa que leia a altura de uma pessoa (em metros) e retorne esse valor convertido para pés e polegadas Considere: 1 pé = 30.48cm e 1 polegada = 2.54cm Saída: 1.68m corresponde a 5.5 pes e 66.1 polegadas • Faça um programa que leia um número em segundos, e retorna o mesmo em horas, minutos e segundos Saída: 7322 segundos equivalem a 2 horas, 2 minutos e 2 segundos • Faça um programa que leia um número e imprima uma sequência numérica. Ex: se o número digitado foi 3: Saída: 1 1 2 1 2 3 • Faça uma função que recebe um inteiro e retorna seu fatorial Fat(n)=n*n-1*n-2*..*1 Ex: Fat(5)=5*4*3*2*1 • Faça uma função que recebe uma temperatura em ºC e retorna seu equivalente em ºF Considere: TC=TF-32 100 180

  3. (2)Vetores Definição e declaração de vetores • Objetivo: • Declarar N variáveis de um mesmo tipo • Primeiro índice: zero • Também conhecido como arranjo • Sintaxe: tipo nome_do_vetor[N]; • Ex: float notas[30]; float teste=7; notas[0] = 4.5; notas[1] = 10; notas[2] = notas[0]; // qual valor é atribuído a elemento de índice 2? notas[3] = notas[10]; // o que acontece aqui? notas[30] = 2; // essa instrução é legal em C? // qual o valor provável de teste depois dessa instrução? • Ex: O que faz o programa abaixo? • main(){ • int v[10], j; • for (j = 0; j <= 10; j++) { • v[j] = 0; • } • } igual?

  4. (2)Vetores Inicializando valores • Inicialização: tipo nome_do_vetor[N] = {valor1,valor2,...,valorN}; • Caso o vetor tenha sido inicializado, seu tamanho (N) pode ser omitido • Ex1: int idades[10] = {34,53,12,20,22}; // qual o valor de idades[5]? int idades2[] = {34,53,12,20,22}; // qual o tamanho de idades2? for(i=0;i<10;i++){ printf(“Idade do usuario %d eh %d”,i+1,idade[i]); // cuidado com o lixo!!! } Solução? Você deveria ter inicializado todos os valores!

  5. (2)Vetores Auto-avaliação • Faça um programa que defina um vetor de 10 inteiros, com valores já inicializados e calcule a soma dos elementos Ex: int vetor[10] = {1,2,3,4,5,6,7,8,9,10}; • Faça um programa que copie o vetor1 no vetor2 de forma invertida. Depois, imprima os vetores. Defina uma constante para o tamanho do vetor. Ex: #define N 10 int vetor1[N] = {1,2,3,4,5,6,7,8,9,10}; int vetor2[N];

  6. (3)Strings Definição e inicialização de strings • Vetor de char • Não existe o tipo pré-definido string em C • Termina com o caractere ‘\0’ • Portanto, se você precisa de uma string com 10 caracteres, declare um vetor com 11 posições (char) • Sintaxe: char nome_da_string[tamanho]; • Ex1: char s1[]=“Fred”; // qual o tamanho dessa string? char s2[5]; char s3[]; // ilegal, pois não declarei o tamanho da string nem inicializei • Ex2: char nome[20] = {'F','r','e','d‘,’\0’}; printf(“Nome: ”); for(i=0;i<20;i++){ printf(“%c”,nome[i]); } É opcional, caso você inicialize um valor, pois o compilador consegue deduzir char nome[20] = “Fred”; printf(“Nome: ”); for(i=0;nome[i]!=‘\0’;i++){ printf(“%c”,nome[i]); } B A C printf(“Nome: %s”,nome);

  7. (3)Strings Função gets() • Ex: o programa abaixo copia uma string em outra #include <stdio.h> main (){ int count; char s1[100],s2[100]; printf(“Digite a primeira string: ”); gets(s1); for (count=0;s1[count];count++) s2[count]=s1[count]; s2[count]='\0'; } • Não é permitido diretamente: (lembre-se: string não é um tipo pré-definido em C) • Comparar duas strings • Ex: if (s1==s2) {...} • Atribuir uma string a outra • Ex: s1 = s2; • Para realizar tal tarefa, use a biblioteca <string.h> O scanf() não! A função gets (stdio.h) é capaz de capturar uma string com espaços em branco Qual é a condição de parada do for aqui? (vimos na aula passada!)

  8. (3)Strings Biblioteca string.h • strcpy (string_destino,string_origem) • Objetivo: copia a string_origem para a string_destino • Ex: #include <stdio.h> #include <string.h> main () { char str1[100],str2[100],str3[100]; printf ("Entre com uma string: "); gets (str1); strcpy (str2,str1); /* Copia str1 em str2 */ strcpy (str3,"Voce digitou a string "); /* Copia "Voce digitou a string" em str3 */ printf ("\n\n%s%s",str3,str2); }

  9. (3)Strings (2) Strings: biblioteca string.h • strcat (string_destino,string_origem) • Objetivo: A string_origem permanecerá inalterada e será anexada ao fim da string_destino • Ex: #include <stdio.h> #include <string.h> main () { char str1[100],str2[100]; printf ("Entre com uma string: "); gets (str1); strcpy (str2,"Voce digitou a string "); strcat (str2,str1); /* str2 armazenara' Voce digitou astring + o conteudo de str1 */ printf ("\n\n%s",str2); }

  10. (3)Strings Biblioteca string.h • strlen (string) • Objetivo: A função strlen() retorna o comprimento da string fornecida • Retorno: tamanho de string • Atenção: O terminador nulo não é contado • Ex: #include <stdio.h> #include <string.h> main () { int size; char str[100]; printf ("Entre com uma string: "); gets (str); size=strlen (str); printf ("\n\nA string que voce digitou tem tamanho %d",size); }

  11. (3)Strings Biblioteca string.h • strcmp (string1,string2) • Objetivo: compara a string1 com a string2. • Retorno: 0 se elas forem idênticas valor<0 se string1 for menor que string2. Ex: “Fred” < “Ze” valor>0 se string1 for maior que string2. Ex: “Fred” > “Bala” • Ex: #include <stdio.h> #include <string.h> main (){ int iguais; char str[100], str2[]=“Fred”; printf (“Digite seu nome: "); gets (str); iguais=strcmp (str, str2); if (iguais==0) printf ("\n\nSeu nome é Fred"); getchar(); }

  12. (3)Strings Biblioteca string.h • Outras funções:

  13. (3)Strings Auto-avaliação • Faça um programa que leia do usuário duas strings: nome e ultimoNome. Seu programa deve criar uma terceira string vazia (nomeCompleto), que deve concatenar as duas outras strings, lembrando de colocar um espaço em branco entre elas. Finalmente imprima nomeCompleto na tela. • Ex: nome = “Frederico” ultimoNome = “Fernandes” Então: nomeCompleto = “Frederico Fernandes”

More Related