18
Computação Eletrônica Strings em C Prof. Leandro Almeida Adaptado de Ameliara Freire

Computação Eletrônica

Embed Size (px)

DESCRIPTION

Computação Eletrônica. Strings em C. Prof. Leandro Almeida Adaptado de Ameliara Freire. Strings. Strings em C Em C não há o tipo de dado String, deve-se usar um vetor de caracteres, com uma posição para cada caractere e uma extra para um delimitador ‘\0’ (null). - PowerPoint PPT Presentation

Citation preview

Page 1: Computação Eletrônica

Computação Eletrônica

Strings em C

Prof. Leandro Almeida

Adaptado de Ameliara Freire

Page 2: Computação Eletrônica

2

Strings

Strings em C Em C não há o tipo de dado String, deve-se

usar um vetor de caracteres, com uma posição para cada caractere e uma extra para um delimitador ‘\0’ (null).

Declaração: char identificador[dimensão + 1]; Exemplo: char str[8] = “EXEMPLO”; =>char str[8] = {‘E’, ‘X’, ‘E’, ‘M’, ‘P’, ‘L’, ‘O’, ‘\0’}; As funções de manipulação de Strings

armazenam automaticamente o ‘\0’

Page 3: Computação Eletrônica

3

Strings

Strings em C Constantes: (Entre aspas duplas)

“UFRPE” = ‘U’ ‘F’ ‘R’ ‘P’ ‘E’ ‘\0’Exemplo:char exemplo[10] = “UFRPE”;

Processando Strings Cada elemento do vetor é um caractere e pode ser

acessado individualmenteUm elemento ‘\0 significa o fim do vetor.

Page 4: Computação Eletrônica

4

Strings

Strings em C Exemplo:

main( ) {char nome[10] = “exemplo”;printf(“%s”, nome);printf(“%c”, nome[0]);

}

Page 5: Computação Eletrônica

5

Caracteres

Entrada e saída para caracteres getchar e putchar

int getchar() recebe um único caractere. Armazena a entrada até que <ENTER> (‘\n’) seja

pressionado. retorna como um inteiro.

int putchar(int c) imprime um único caractere passado como inteiro. retorna o mesmo inteiro

Page 6: Computação Eletrônica

Caracteres

Entrada e saída#include <stdio.h>

#include <conio.h>

main( )

{

int c;

printf( "Digite um caracter:");

c = getchar( );

printf("\nValor inteiro: %d",c);

printf( "\nInfo digitada: ");

putchar( c );

getche();

}

6

Page 7: Computação Eletrônica

Strings

Entrada e saída usando gets e puts: gets – faz a leitura de uma linha até digitar

<enter> Incluindo espaços, caracteres especiais, números,

acentos, etc. O “fflush(stdin)” deve vir antes, principalmente quando

o gets é usado dentro de um laço de repetição. puts – realiza a apresentação do vetor lido com

gets A impressão também pode ser realizada usando printf

7

Page 8: Computação Eletrônica

Para ler cadeias de caracteres com scanf devemos alterar a string controle:

scanf("%[^\n]s", nome);

Ou

scanf("%99[^\n]s", nome);

Ajustando o scanf

Page 9: Computação Eletrônica

Strings

Entrada e saída usando scanf e printf:#include <stdio.h>

#include <conio.h>

main( )

{

char str[100];

printf( "Digite uma informacao:");

scanf(“%s”, str);

printf( "\nInfo digitada: ");

printf("\n%s",str);

getche();

}

9

Page 10: Computação Eletrônica

Strings

Entrada e saída usando gets e puts:#include <stdio.h>

#include <conio.h>

main( )

{

char str[100];

printf( "Digite uma informacao:");

fflush(stdin);

gets(str);

printf( "\nInfo digitada: ");

puts( str );

printf("\n%s",str);

getche();

}

10

Page 11: Computação Eletrônica

11

Strings

Entrada e saída para strings scanf: lê strings até que um espaço em branco

seja encontrado. Exemplo:

#include <stdio.h>main(){

char nome[40];printf(“Digite seu nome:”);scanf(“%s”, nome);printf(“Boa noite %s”, nome);

}

Page 12: Computação Eletrônica

12

Strings

Funcoes de manipulacao de strings e caracteres

strcopy(a,b): faz uma copia de todos os caracteres de b para a.

strcat(a,b): adiciona os caracteres da string b à string a

strcmp(a,b): compara duas strings caracter por caracter e retorna 0 se elas forem iguais. Nunca compare strings usando o operador ==.

islower(char): diz se o caracter é minusculo isupper(char): diz se um caracter é maiusculo

Page 13: Computação Eletrônica

13

Page 14: Computação Eletrônica

14

Page 15: Computação Eletrônica

15

Strings

Funcoes de manipulacao de strings e caracteres

strlen(char[] a): devolve o tamanho da string a tolower(char): devolve o caracter para minusculo toupper(char): devolve o caracter pra maiusculo

Page 16: Computação Eletrônica

16

Exercicio

Faça um programa que solicita o usuario digitar o nome e endereco completo (armazenando em duas strings). Em seguida o programa imprime na tela o que foi digitado.

Page 17: Computação Eletrônica

17

Exercicio

Faça um programa que solicita o usuário digitar o nome e sobrenome

Em seguida o programa solicita ao usuário digitar rua, numero, bairro, cidade (capturando todos os dados como string).

Finalmente o programa concatena o nome e sobrenome e mostra na tela.

Depois o programa concatena os dados do endereço e imprime o endereço de uma só vez.

Page 18: Computação Eletrônica

18

1) Elabore um programa que receba uma linha de texto e conte as vogais apresentando o respectivo histograma na seguinte forma:

Exemplo:

Linha de texto passada: “Na próxima quarta-feira é feriado.”

a : ****** (6) e : *** (3) i : *** (3) o : ** (2) u : * (1)

Tomar cuidado com letras em maiúsculo. Pode ser necessário o uso de funções apresentadas na aula sobre strings.

1) Implemente um programa que receba uma linha de texto, retire os espaços em excesso existentes deixando apenas um espaço entre as várias palavras. As alterações de quantidade de espaços em branco devem ser realizadas diretamente no vetor do texto. Não deve ser utilizado vetor auxiliar.