Upload
chase-woodward
View
31
Download
1
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
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.