Computação Eletrônica

Preview:

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

Computação Eletrônica

Strings em C

Prof. Leandro Almeida

Adaptado de Ameliara Freire

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’

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.

4

Strings

Strings em C Exemplo:

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

}

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

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

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

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

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

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

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);

}

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

13

14

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

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.

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.

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.

Recommended