Índice Valor C A D E I A \0 memória

Documentos relacionados
Strings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos.

3. Linguagem de Programação C

Computação 2. Aula 3. Diego Addan Vetores de caracteres (strings)

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: C

Aula 9 Oficina de Programação Strings. Profa. Elaine Faria UFU

LINGUAGEM C: ARRAYS DE CARACTERES: STRINGS

Apêndice B. Cadeias de Caracteres (Strings)

Introdução à Linguagem C. Strings. Laboratório de Programação Prof.Alfredo Parteli Gomes

Computação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br

Curso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For.

CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho

Algoritmos e Programação

Tratamento de Caracteres

Caracteres, Vetores e Matrizes

Introdução à Programação Aula 10. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Vetores II. Strings Leitura e exibição Biblioteca string.h Operações com Strings. Matrizes Definição de Acesso Operações com Matrizes

Linguagem de Programação I Vetores e Strings. Thiago Leite Francisco Barretto

cadeia de caracteres (string) INF Programação I Prof. Roberto Azevedo

Vetores e Strings. 4. Funções Básicas para manipulação de Strings. A função gets() lê uma string do teclado. Sua forma geral é:

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

CCO 016 Fundamentos de Programação

SITUAÇÃO VETORES. Imagine o seguinte problema:

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: variáveis compostas homogêneas: Arrays Strings

Introdução à Programação. Strings

Estrutura de Dados. Cadeia de Caracteres. Roberto Araujo Ago/2013

Introdução à Programação C

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Manipulação de strings. Prof. Alex Camargo

Cadeias de Caracteres (Strings)

CURSO BÁSICO DE PROGRAMAÇÃO AULA 16. Ordenação Revisão para a prova

Vetores II Strings Leitura e exibição Biblioteca string.h Operações com Strings Matrizes Definição de Acesso Operações com Matrizes

Seqüências de Caracteres

Métodos Computacionais. Strings (Vetor de Caracteres)

Caracteres. Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência entre caracteres e códigos numéricos

Introdução a Programação. Strings (Vetor de Caracteres)

Programação de Computadores II. Cap. 7 Cadeias de Caracteres

Vetores e Matrizes. Conceito. Conceito. Conceito. Conceito. Conceito. Variáveis Compostas Homogêneas. Matriz

Programação I Matrizes e Strings. Prof. Carlos Alberto

x=0; y=x+1; x=&y+2; x 1000 y 1004

Aula 05 -Introdução àlinguagc Programação: Estr. Dados Strings

Caracteres e Cadeias de Caracteres

ESTRUTURAS COMPOSTAS

Programação: Vetores

INF 1620 P1-16/09/06 Questão 1 Nome:

Departamento de Sistemas de Computação Universidade de São Paulo Laboratório de Introdução a Ciência de Computação I.

Estruturas de Dados Aula 6: Cadeias de 28/03/2010

Estruturas de Dados Aula 6: Cadeias de Caracteres

ESTRUTURAS COMPOSTAS VETOR

Linguagem C: Tipos básicos de dados escalares e cadeia de caracteres. Prof. Leonardo Barreto Campos 1

Disciplina de Algoritmos e Programação

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Algoritmos e Programação

ESTRUTURAS COMPOSTAS VETOR

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Strings. Para começar... Strings. Exemplo...

Linguagem C Vetores, Matrizes e Strings

Disciplina de Algoritmos e Programação

Introdução a Computação

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Linguagem de Programação

Linguagem C: Introdução

Char e Strings de Caracteres

INF 1620 P2-14/10/05 Questão 1 Nome:

Vetores e Strings. printf ("\na string %s nao esta contida no vetor de %s", string, "strings.\n");

Introdução a Programação de Jogos

Módulo 7 Cadeias de Caracteres

Aula 8 - Matrizes e Strings

Programação de Computadores I Funções Básicas da Linguagem C PROFESSORA CINTIA CAETANO

Vetores. Vetores. Vetores. Vetores. Vetores. Algoritmos e Lógica de Programação. Vetores

#include <stdio.h> #define nl 3 #define nc 4 main () { int matriz[nl][nc],*p,i; for (i=0, p=&matriz[0][0];i<nl*nc;i++) *(p++)=i+1; for (i=0,

INF 1620 P1-14/04/07 Questão 1 Nome:

Char e Strings de Caracteres

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros

Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva

Algoritmos e Programação

Computação eletrônica:

Disciplina de Algoritmos e Programação. Vetor e Matriz

Declarando e Utilizando Ponteiros. Para declarar um ponteiro temos a seguinte forma geral: tipo_do_ponteiro *nome_da_variável;

Métodos Computacionais em Física

Working 07 : Vetores 2

Linguagem de Programação

INTRODUÇÃO À LINGUAGEM C. Prof. Msc. Luis Filipe Alves Pereira 2015

sequências de caracteres Strings

Strings. Adaptado de Deise Saccol

Programação de Computadores II. Cap. 7 Cadeias de Caracteres 1/2

Fundação Universidade de Rondônia Estrutura de Dados 1º semestre/2010 LISTA DE EXERCÍCIOS

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C.

INF 1620 P4-01/07/08 Questão 1 Nome:

Linguagem C: Ponteiros. Prof. Tiago Alves de Oliveira

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

3.1 - Funções para manipular dados de entrada e saída padrão

INF 1620 P1-18/09/04 Questão 1 Nome:

Estruturas de Dados Homogêneas (Vetores e Matrizes) e Ponteiros em C

Olimpíadas de Informática

Introdução a Programação na Linguagem C.

Linguagem C: Ponteiros. Prof. Leonardo Barreto Campos 1

Definição de Matrizes em Linguagem C. Matrizes unidimensionais

Transcrição:

Strings em C A linguagem C não possui um tipo específico de dados Strings. Para fazer uma string, o C utiliza um vetor de caracteres, onde cada posição do vetor representa uma letra. É importante lembrar que a linguagem C identifica o fim de uma cadeia por meio do caracter nulo (\0). Sendo assim, para termos uma string, sempre temos que ter uma posição a mais de tamanho no vetor para este caracter no final. Por exemplo, para armazenarmos a palavra CADEIA, temos que declarar um vetor do tipo char com sete posições, e elas ocuparão posições seqüenciais na memória. char palavra [7]; Índice 0 1 2 3 4 5 6 Valor C A D E I A \0 memória 863 864 865 866 867 868 869 Printf( %c,palavra[3]); Na tela apareceria a letra E Manipulação de Strings Para trabalharmos com esses vetores especiais que chamamos de Strings precisaremos incluir a biblioteca string.h strcpy (str1, str2) Esta função é utilizada para copiar o conteúdo de uma string em outra. A primeira string terá o mesmo valor da segunda string. Podemos também colocar uma string qualquer entre aspas ao invés de uma variável no lugar de str2. Importante lembrar que o tamanho de str2 deve ter no máximo o mesmo tamanho de str1. Str2 pode ser menor, nunca maior que str1. Mesmo no caso de colocarmos uma string manualmente (fazer uma cópia sem utilizarmos str2 como demonstrado no exemplo abaixo) não podemos ultrapassar o tamanho de str1 menos 1. Exemplo char str1[40],str2[40]; strcpy(str2,"teste INICIAL "); strcpy(str1,str2); printf("%s",str1); printf("\n%s",str2); Resultado na tela: TESTE INICIAL TESTE INICIAL

strcat (str1,str2) Esta função é utilizada para concatenar (unir / juntar) duas strings. A segunda string será adicionada no final da primeira string indicada. Lembre-se que a soma dos valores de caracteres da str1 + str2 não podem exceder o tamanho da str1. Podemos também substituir str2 por um conjunto de caracteres manualmente, como no exemplo do strcpy. Exemplo char str1[40],str2[10]; strcpy(str1,"teste INICIAL "); strcpy(str2,"teste 2"); strcat(str1,str2); printf("%s",str1); Resultado na tela: TESTE INICIAL teste 2 strchr (str1,ch) Esta função é utilizada para procurar a posição da primeira ocorrência do caracter ch em uma string. Ou seja, a função retorna qual posição dentro de uma string a letra especificada em ch se encontra (a primeira ocorrência caso haja repetições). A função retorna um ponteiro para a posição de memória. Para termos o valor exato, precisamos subtrair o valor da string multiplicado por -1. Veja o exemplo: char str1[50],ch; ch='l'; printf("%d",-(str1-strchr(str1,ch))); Resultado na tela: 12 strcmp (str1,str2) Esta função é utilizada para comparar se o conteúdo de str2 é igual ao conteúdo de str1. Nesse caso, a função retorna o valor 0 (zero) se as duas cadeias forem iguais, um valor menor que zero se str1 for alfabeticamente menor que str2 ou um valor maior que Página 2

zero se str1 for alfabeticamente maior que str2. Esta função diferencia maiúsculas de minúsculas. char str1[50],str2[50],str3[50]; strcpy(str2,"procura uma letra inicial de caracteres"); strcpy(str3,"cadeia diferente"); printf("%d\n",strcmp(str1,str2)); printf("%d\n",strcmp(str1,str3)); printf("%d\n",strcmp(str2,str3)); printf("%d\n",strcmp(str3,str1)); printf("%d\n",strcmp(str2,str1)); Resultado na tela: 0-0 stricmp (str1,str2) Esta função é utilizada para comparar se o conteúdo de str2 é igual ao conteúdo de str1. Nesse caso, a função retorna o valor 0 (zero) se as duas cadeias forem iguais, um valor menor que zero se str1 for alfabeticamente menor que str2 ou um valor maior que zero se str1 for alfabeticamente maior que str2. Esta função não diferencia maiúsculas de minúsculas. char str1[50],str2[50],str3[50]; strcpy(str2,"procura UMA LETRA INICIAL DE CARACTRES"); strcpy(str3,"cadeia diferente"); printf("%d\n",stricmp(str1,str2)); printf("%d\n",stricmp(str1,str3)); printf("%d\n",stricmp(str2,str3)); printf("%d\n",stricmp(str3,str1)); printf("%d\n",stricmp(str2,str1)); Resultado na tela: 0 Página 3

- 0 strlen (str1) Esta função retorna o tamanho (quantidade de letras) de uma string, desprezando o caractere nulo final (\0). Ela retorna o valor exato de caracteres. char str1[50]; printf("%d",strlen(str1)); Resultado na tela: 39 strstr (str1,str2) Esta função retorna um ponteiro que aponta para uma string dentro de uma string. Em outras palavras, ela retorna a posição de memória em uma variável de memória que mostra onde começa uma possível repetição de str2 dentro de str1. Se não houver repetição, ela retorna o caracter nulo (\0) char str1[40],str2[40]; char *ptr; strcpy(str1,"eu adoro programar em C"); strcpy(str2,"programar"); ptr = strstr(str1, str2); printf("a repeticao e: %s\n", ptr); Observação: A matéria de ponteiros não será abordada neste ponto da matéria. Página 4

Inicialização de Strings As variáveis que armazenam seqüências de caracteres (strings) em C devem ser inicializadas de forma diferente das variáveis comuns, como int, float, etc. (onde utilizamos apenas o sinal de = para sua inicialização). Os tipos particulares de inicializações de Strings são: Inicialização por meio de atribuição Esta é a forma tradicional de inicialização, que foi demonstrada nos exemplos acima, onde utilizamos a função strcpy para atribuir o valor inicial a uma string. Por exemplo: char vet1[10], vet2[10]; strcpy (vet1, String1 ); ou strcpy (vet2,vet1); Inicialização no momento da declaração Com esse método de inicialização, podemos declarar uma string sem preocuparmos com seu tamanho, atribuindo uma quantidade de caracteres que serão utilizadas no vetor. Lembrando que, após esse tipo de atribuição, para o resto do programa a variável terá sempre o tamanho fixo do número de letras atribuído. Por exemplo: char nome [ ] = S, e, r, g, i, o,, P, o, r, t, a, r, i, \0 ; ou char nome[ ] = Sergio Portari ; Nos dois casos, após a inicialização, a variável nome possui o tamanho 14. Inicialização por meio do teclado Essa inicialização é feita pelo clássico scanf utilizado até hoje em nossos exercícios, onde o usuário utiliza o teclado para informar quais serão os caracteres que estarão armazenados. char nome[40]... printf( Digite o nome: ); scanf( %s,&nome); Podemos ainda utilizar a função gets da biblioteca string ao invés do scanf. char nome[40]... Página 5

printf( Digite o nome: ); gets(nome); Observação: Para imprimirmos o conteúdo de uma string podemos utilizar a função puts da biblioteca string ao invés do printf. Exemplo puts(nome); mostra o conteúdo da string nome na tela, equivalente a printf( %s,nome); Exercícios Strings 1) Faça um programa em C que receba uma frase qualquer fornecida pelo usuário, calcule e mostre quantas palavras a frase possui. 2) Faça um programa em C que receba uma frase e troque as vogais existentes nesta frase por um asterisco (*). Por exemplo: Frase EU ESTOU NA ESCOLA resultado na tela ** *ST** N* *SC*L* 3) Faça um programa em C que se comporte como um vírus. Este programa irá duplicar as palavras digitadas em uma frase. 4) Faça um programa em C que receba uma frase do usuário e mostre a frase, palavra por palavra, uma em cada linha diferente. 5) Faça um programa em C que receba uma frase, inverta a frase letra a letra, da última para a primeira, e mostre esta frase ao final. Página 6