Aula prática 7 Strings Monitoria de Introdução à Programação

18
Aula prática 7 Aula prática 7 Strings Strings Monitoria de Introdução à Monitoria de Introdução à Programação Programação

description

Aula prática 7 Strings Monitoria de Introdução à Programação. Roteiro. String Definição Declaração Caracteres especiais Captura e Impressão Funções da string.h Outras Funções Duvidas Exercícios. String - Definição. - PowerPoint PPT Presentation

Transcript of Aula prática 7 Strings Monitoria de Introdução à Programação

Aula prática 7Aula prática 7

StringsStrings

Monitoria de Introdução à ProgramaçãoMonitoria de Introdução à Programação

RoteiroRoteiro

StringString– DefiniçãoDefinição– DeclaraçãoDeclaração– Caracteres especiaisCaracteres especiais– Captura e ImpressãoCaptura e Impressão

Funções da string.hFunções da string.h Outras FunçõesOutras Funções DuvidasDuvidas ExercíciosExercícios

String - DefiniçãoString - Definição

Uma String, para programação, é um tipo de dado representando Uma String, para programação, é um tipo de dado representando uma palavra, uma frase ou um texto, normalmente composto de uma palavra, uma frase ou um texto, normalmente composto de caracteres.caracteres.

Em C, não há um tipo de dado específico para strings(ao contrário Em C, não há um tipo de dado específico para strings(ao contrário de Java e C++, por exemplo), mas há suporte para seu uso.de Java e C++, por exemplo), mas há suporte para seu uso.

A definição de String, para a linguagem C, é: A definição de String, para a linguagem C, é:

““Um vetor de caracteres terminado pelo caractere Um vetor de caracteres terminado pelo caractere ‘\0’‘\0’, o caractere , o caractere nulo, de valor inteiro 0”.nulo, de valor inteiro 0”.

Há suporte para várias operações com strings na linguagem C, Há suporte para várias operações com strings na linguagem C, através de funções da biblioteca através de funções da biblioteca string.hstring.h..

String - DeclaraçãoString - Declaração

Podemos declarar uma string de duas formas:Podemos declarar uma string de duas formas:– Da mesma forma que declaramos um vetor de caracteres, Da mesma forma que declaramos um vetor de caracteres,

terminando com o caractere terminando com o caractere ‘\0’‘\0’::

– Usando strings constantes*:Usando strings constantes*:

*: Também chamadas de “String literals” em inglês.*: Também chamadas de “String literals” em inglês.

String – Caracteres especiaisString – Caracteres especiais

Existem caracteres especiais, usados nas strings:Existem caracteres especiais, usados nas strings:

Caractere Uso

\\ Barra\" Aspas duplas.\' Aspas simples.\n Nova linha, com cursor no início.\r Retorno ao começo da linha.\b Backspace.\t Tabulação horizontal (TAB).\f Nova linha, com cursor abaixo de onde estava.\a Alerta (bipe).\v Tabulação vertical.\nnn ou \xnn Caractere de valor nnn (octal) ou nn (hexadecimal)

String – Captura e ImpressãoString – Captura e Impressão

Para capturar uma string do usuário usamos a função scanf(), Para capturar uma string do usuário usamos a função scanf(), com %s :com %s :

Para imprimir uma string, usamos a printf(), com %s :Para imprimir uma string, usamos a printf(), com %s :

Observação: O scanf com formato “%s” só captura uma palavra Observação: O scanf com formato “%s” só captura uma palavra por vez. Para capturar uma linha inteira, se usa a formatação “ %por vez. Para capturar uma linha inteira, se usa a formatação “ %[^\n]”, ou use a função gets(char* string).[^\n]”, ou use a função gets(char* string).

Funções da string.hFunções da string.h

Pelo fato que strings são vetores, sua manipulação é complicada, Pelo fato que strings são vetores, sua manipulação é complicada, é feita acessando cada posição.é feita acessando cada posição.

Como operações com strings são bastante comuns, e manipular Como operações com strings são bastante comuns, e manipular vetores é uma tarefa cansativa, há a biblioteca “string.h” com vetores é uma tarefa cansativa, há a biblioteca “string.h” com funções para facilitar essa manipulação.funções para facilitar essa manipulação.

Funções da string.hFunções da string.h

Usada para copiar a string fonte para o vetor destino.Usada para copiar a string fonte para o vetor destino.

É uma alternativa ao operador “=“, que não pode ser usado com É uma alternativa ao operador “=“, que não pode ser usado com vetores e, portanto, strings.vetores e, portanto, strings.

É tarefa do programador garantir que o vetor destino seja grande É tarefa do programador garantir que o vetor destino seja grande o suficiente para armazenar a string em fonte.o suficiente para armazenar a string em fonte.

Retorna o endereço da string destino.Retorna o endereço da string destino.

Funções da string.hFunções da string.h

Usada para concatenar a string fonte com a string destino.Usada para concatenar a string fonte com a string destino.

A string fonte será copiada para o final da string destino.A string fonte será copiada para o final da string destino.

É tarefa do programador garantir que o vetor destino seja grande É tarefa do programador garantir que o vetor destino seja grande o suficiente para armazenar as duas strings.o suficiente para armazenar as duas strings.

Retorna o endereço da string destino.Retorna o endereço da string destino.

Funções da string.hFunções da string.h

Usada para comparar as duas strings.Usada para comparar as duas strings.

Se string1 for lexicamente anterior à string2, strcmp() retorna Se string1 for lexicamente anterior à string2, strcmp() retorna um inteiro negativo.um inteiro negativo.

Se string1 for lexicamente posterior à string2, strcmp() retorna Se string1 for lexicamente posterior à string2, strcmp() retorna um inteiro positivo.um inteiro positivo.

Se as duas strings forem iguais, strcmp() retorna 0.Se as duas strings forem iguais, strcmp() retorna 0.

Funções da string.hFunções da string.h

Retorna o tamanho da string string.Retorna o tamanho da string string.

O tamanho não inclui o ‘O tamanho não inclui o ‘\0\0’ do fim da string.’ do fim da string.

Funções da string.hFunções da string.h

Procura a string agulha dentro da string Palheiro.Procura a string agulha dentro da string Palheiro.

Se achar, retorna o endereço da primeira ocorrência de agulha Se achar, retorna o endereço da primeira ocorrência de agulha na string palheiro.na string palheiro.

Se não achar, retorna NULL.Se não achar, retorna NULL.

Funções da string.hFunções da string.h

Temos várias outras funções na string.h, que podem ser vistas Temos várias outras funções na string.h, que podem ser vistas em:em:

http://www.cplusplus.com/reference/clibrary/cstring/

Outras FunçõesOutras Funções

Temos, na “stdio.h”, duas funções interessantes para strings:Temos, na “stdio.h”, duas funções interessantes para strings:

sprintf() é usada como a printf(), mas imprime na string, e não sprintf() é usada como a printf(), mas imprime na string, e não na saída padrão.na saída padrão.

sscanf() é usada como a scanf(), mas captura dados da string, e sscanf() é usada como a scanf(), mas captura dados da string, e não da entrada padrão.não da entrada padrão.

Dúvidas?Dúvidas?

Exercício 1Exercício 1

• Fazer um programa para ler uma string e um caracter qualquer e imprima na tela as posições (índices) de onde ocorre o caracter na string.

• Exemplo: Seja a string "abracadabra!!!" e o caracter 'a ', então a função deve imprimir os seguintes valores:

{ 0 3 5 7 10}.

Exercício 2Exercício 2

Escreva uma função que receba duas strings e retorna o número de ocorrências da segunda string na primeira.

Ex: Se a primeira string digitada for "abracadabra" e a segunda "bra", então o número de ocorrências é 2.

Exercício 3Exercício 3

• Escreva uma função que receba uma string s e dois inteiros não negativos i e j e modifica a mesma, de modo que ela passe a armazenar o segmento s[i..j].

• OBS: Para essa questão, não se deve usar nenhuma string auxiliar durante a resolução.