You are on page 1of 40

Programação de Sistemas Informação

Módulos
Módulo 1 – Introdução à Programação e Algoritmia 22
Módulo 2 – Mecanismos de Controlo de Execução 24
Módulo 3 – Programação Estruturada 24
Módulo 4 – Estruturas de Dados Estáticas 20
Módulo 5 – Estruturas de Dados Compostas 20
Módulo 6 – Estruturas de Dados Dinâmicas 14
Módulo 7 – Tratamento de Ficheiros 20
Programação de Sistemas Informação

Módulo 4 – Estruturas de Dados Estáticas 20


 Saber o que é uma String.
 Manipular uma String.
 Saber fazer a distinção entre uma variável simples e uma variável
estruturada.
 Diferenciar índice e valor indexado num Array.
 Dominar os algoritmos de manipulação de Arrays.

Início: 17/01/18 Termo: 28/02/18


Teste: 27/02/18
Strings e Carateres

Uma string é um conjunto de carateres armazenados num vetor


(array) e permitem representar palavras, frases e textos.

As strings são representadas utilizando aspas (“) enquanto os


carateres são representados entre plicas (‘).

Exemplos de Strings: Exemplos de Carateres:

“Raquel” 'L'
“Elisabete Barroso Vieira” '+'
“Festa de anos do Rodrigo” 'A'
“A”
Cadeia de carateres - Strings

A string é um tipo de dados que serve para armazenar


sequências de carateres.

Pode ser dimensionada (com o número máximo de


carateres que pode conter)

formato char nome[X]

No caso de ser dimensionada o X terá que tomar um valor


definido. Exemplo: char nome[10];

Onde 10 é o tamanho máximo da string.


Cadeia de carateres - Strings
Tal como os vetores de dados numéricos as strings também podem ser
iniciadas aquando da sua definição.

Há duas formas para iniciar uma string na declaração, a 1ª:

char str[]={’B’,’o’,’m’,’ ’,’d’,’i’,’a’,’ ’,’T’,’u’,’r’,’m’,’a’,’\0’};

O compilador além de as iniciar também define o seu tamanho. Neste


caso é necessário colocar o carater ’\0’, explicitamente.
Da mesma forma que os vetores de dados numéricos as strings
também podem ser manipuladas por indexação.
str[0]=’B’; str[1]=’o’;
Cadeia de carateres - Strings
Outra forma de inicializarmos uma string e esta é mais pratica:

char str[]="Bom dia Turma";


Neste segundo caso o compilador acrescenta o ‘\0’ à string.

Para mostrar cá para fora string usamos:

printf(“%s”,str);

Faça 2 programas diferentes um com o 1º caso e outro com o 2º caso.

string1.c string2.c
Cadeia de carateres - Strings

Como sabemos onde acaba uma string? O carater ‘\0’ cujo código
ASCII é zero serve como terminador duma string.
Declararmos um vetor chamado v com 100 posições para o nome e
lá colocarmos Zé.
char v[100];

char str[14];
conterá uma string com 13 carateres úteis mais um finalizador.
Cadeia de carateres - Strings

A referência a um determinado carater de uma string é feita


utilizando a noção de array.
Exemplo:
char str[ ]="Bom dia Turma";
printf("%c\n",str[2]);

O output do programa seria:


string3.c
m
Porque é o 3º caracter da string ou
string4.c seja está na posição 2 do vetor.

Faça um programa que mostre a frase, mostre o 2º e 6º caracter


dessa frase. Vai mostrar oi
PRINTF e PUTS

A função puts (put string) coloca no ecrã a string e em seguida faz


automaticamente uma mudança de linha.

Exemplo: puts(“Módulo 4”) é equivalente a printf (“Módulo 4\n”)

#include <stdio.h>
main()
{ ex_put.c
puts("Módulo 4") ;
getch();
}
PRINTF e PUTS
#include <stdio.h>

main()
{
char NomeProprio[20]="Ricardo";
char Apelido[20]=“Araújo Pereira";
printf ("Nome: %s, %s \n", Apelido, NomeProprio);
}

Output: Nome: Araújo Pereira, Ricardo


ex_string.c
SCANF com string
A função scanf permite realizar a leitura de strings utilizando o formato
%s. No entanto, a variável que recebe a string NÃO É PRECEDIDA de
um &, ao contrário do que acontece com todos os outros tipos de
variáveis. A função scanf realiza apenas a leitura de uma única
palavra.

Exercício: Faça um programa em C que peça o apelido e o nome


próprio do utilizador e depois mostre o seu nome completo.

exemploscanf.c
função gets (get string)
A função gets permite colocar, na variável que recebe por parâmetro,
todos os carateres introduzidos pelo utilizador. Ao contrário do scanf,
esta função não está limitada à leitura de uma única palavra.
Exemplo:
#include<stdio.h>
main ( )
{
char nome[50];
exgets.c
puts (“introduza o nome completo: ”);
gets (nome);
printf (“Nome completo: %s\n”, nome);
}
Exercícios
Escreva um programa que leia nomes e os apresente no
ecrã até que um nome vazio seja introduzido pelo
utilizador.

lernomes.c
Funções para strings
As strings não são mais do que vetores de carateres que contém um carater especial
(‘\0’).
Em C, as strings não podem ser manipuladas diretamente (comparadas,
concatenadas, …) pois não são um tipo básico de linguagem.

No entanto existe um conjunto standard de funções que permite a sua manipulação:


Strlen – devolve o comprimento duma string
Strcpy – copia uma string para outra
Strcat – concatenação de strings
Strcmp – comparação alfabética de strings
Strupr/strlwr – converter uma string para maiúsculas/para minúsculas
Strrev()- serve para inverter o conteúdo de uma string
strlen (string lenght)
strlen (string);
A função strlen() retorna o comprimento da string fornecida. O
terminador nulo não é contado. Isto quer dizer que o comprimento do
vetor da string deve ser um a mais que o inteiro retornado por strlen().
Um exemplo do seu uso:
#include <stdio.h>
Exemplo: main()
{
char nome[100];
puts("Diga um nome: ");
exlen.c gets (nome);
printf(“O nome tem %d carateres\n", strlen(nome));
}
strcpy (string copy)
strcpy (string_destino,string_origem);
A função strcpy() copia a string-origem para a string- destino.

#include <stdio.h>
main ()
{
char str1[30],str2[30];
Exemplo:
puts (“Insira uma string: ");
gets (str1);
strcpy (str2,str1); /* Copia str1 em str2 */
printf ("\n\n%s \n”,str2);
}
exstrcopy.c
strrev (string reverse)
strrev (string);
A função strrev() serve para inverter o conteúdo de uma string .

Exemplo:

#include <stdio.h>
main()
{
char str[20];
puts("Insira uma string: ");
gets(str);
printf(“\nInvertendo ==> %s",strrev(str));
exstrrev.c }
strcmp (string comp)
strcmp (string1,string2);
A função strcmp() compara a string 1 com a string 2. Se as duas forem
idênticas retorna zero. #include <stdio.h>
main ()
Exemplo: {
char str1[30],str2[30];
puts (“Insira uma string: ");
gets (str1);
puts ("\nInsira uma outra string: ");
gets (str2);
if(strcmp(str1,str2))
printf("As strings são diferentes.\n");
else
printf("As strings são iguais.\n");
}
exstrcmp.c
strupr (string uppercase)
strupr (string);
A função strupr() serve para transformar o conteúdo de uma string
minúscula para maiúscula.

Exemplo:
#include <stdio.h>
main()
{
char str[20];
puts("Insira uma string:");
gets(str);
printf("\nEm maiusculas fica: %s",strupr (str));
exstrup.c getch();
}
strcat (string concat)
strcat (string_destino,string_origem);
A string de origem permanecerá inalterada e será anexada
ao fim da string de destino.
#include <stdio.h>
Exemplo: main ()
{
char str1[30],str2[30];
puts (“Insira uma string: ");
gets (str1);
puts(“Insira outra string: ”);
gets(str2);
exstrcat.c strcat (str2,str1);
printf ("\n\n%s\n",str2);
}
Exercícios

1. Escreva um programa que solicite um nome e mostre


qual foi o 1º carater, o 3º carater e o 5º carater.
nomes135.c
2. Escreva um programa que solicite 5 palavras e só
mostre aquelas que começam por A.
comecara.c

3. Faça um programa que peça um nome ao utilizador e


diga quantas letras “a” tem o nome. contarnas.c
Exercícios

4. Faça um programa que leia do teclado um nome e


depois o imprima tantas vezes quantos forem seus
carateres. nomevezes.c

5. Faça um programa que peça um nome ao utilizador e


o escreva de trás para a frente sem utilizar a função
strrev().

tras.c
Exercícios
6. Escrever um programa que receba uma palavra e que conte o
número de vogais. O programa deverá mostrar o número total
de carateres da palavra, o nº de vogais e a respetiva
percentagem das vogais em relação ao total de carateres.
nvogais.c

7. Escrever um programa que receba 3 strings e que me veja qual


delas é a string maior

tamanho3str.c
Exercícios
8. Faça um programa que peça o nome, o sexo e a idade. Se o sexo for
feminino e idade menor que 25, imprimir o nome da pessoa e a palavra
APTO. Caso contrario imprimir NAO APTO e a razão porque não foi aceite.

Apto.c
9. Crie um programa que leia uma palavra e imprima conforme o tamanho da
palavra. Exemplo: LOVE
Como a palavra LOVE tem 4 letras o output ficaria assim:
Repare que foram mostrados 4 vezes na
horizontal e 4 na vertical.
love.c
Exercícios
vezeschar.c

10. Faça um programa que conte quantas vezes determinado carater


(dado pelo utilizador) aparece numa string fornecido pelo
utilizador.

11. Crie um programa que lê 5 números inteiros para um vetor e


imprima uma listagem numerada (1 até 5) contendo o número
inteiro e uma das mensagens: par ou ímpar.

5numpar_ipar.c
Exercícios
13. Faça um programa que permita calcular o número de caracteres
existentes numa string, mas sem usar a função strlen().
contachar.c
Depois de conseguir, faça outro programa de forma que retorne a
função contar(). contachareturn.c
14. Faça uma função  Inverte() que permite colocar os caracteres
de trás para frente. No main chame essa mesma função para inverter
uma string. funcinvert.c

15. Faça uma função que retorne o número de cont_num.c


algarismos existentes numa string. E de seguida execute-a no main.
ASCII American Standard Code for Information Interchange
Código Padrão Americano para o Intercâmbio de Informação
ASCII American Standard Code for Information Interchange

Os números são o idioma dos computadores. Para se comunicar com


os programas (e com outros computadores), o seu computador
converte carateres e símbolos nas suas representações numéricas.
Na década de 60, a necessidade de padronização levou-nos ao ASCII.
O ASCII permite que os computadores armazenem e troquem dados
com outros computadores e programas.
O texto com formato ASCII não contém informações de formatação,
como negrito, itálico ou fontes.
Exercícios
16. Se quisesse saber o que se encontra na posição 80 da tabela
ASCII como faria?
pos80.c

17. Elabore um programa que me mostre todos os


carateres imprimíveis (32 até 126) assim como
a sua posição na tabela ASCII.

ascii.c

18. Escreva um programa que realize a leitura dos salários pagos a


um indivíduo durante um ano.
Em seguida, o programa deverá mostrar os valores mensais e o total
anual.
salario.c
Exercícios
19. Peça uma frase e de seguida mostre essa mesma
frase escrita na vertical. vertical.c
20. Peça um nome com mais que 4 letras, mas faça
com que o programa mostre só as 4 primeiras letras.

nome4.c

21. Digite um nome que inicia com letras maiusculas e de seguida


permita escrever o nome com as Iniciais: Eli Vieira  E.V.

Abreviatura.c
Exercícios
22. O programa lê uma string e codifica-a avançando com a letra
seguinte do alfabeto. Ex: ABBA resulta: BCCB. abba.c

23. Preencha um vetor com 20 numeros inteiros positivos. Pergunte


ao utilizador qual o nº que pretende pesquisar. Ele terá que pesquisar
o número de vezes que ele foi inserido.

numvet.c
Exercícios
24. Faça um programa que carregue um vetor de carateres, gere e
imprima um outro vetor onde as vogais, do primeiro vetor, sejam
substituídas pelo carater *.

asterisco.c

25. Peça ao utilizador para colocar uma letra minúscula e de seguida


transforme-a em maiúscula.

maus1.c
Exercícios
26. Faça um programa que permita contar o numero de palavras
existentes numa string. contapalavras.c

27. O programa lê uma frase ou um nome completo e depois terá que


dizer quantas letras maiúsculas existem. Ex:
contamais.c

28. Digite um nome em minúsculo e converta-o em maiúsculas.


maiustring.c
Exercícios
29. Digite 5 palavras, e tecle <ENTER> ao final de cada uma.
Depois une essas mesmas 5 palavras… 5juntas.c

30.Tem que fazer uma função que retorne o nº de carateres não


numéricos para depois executá-la no main.
naonum.c
Exercícios
31. Digite uma string e obrigue que se mude de linha palavra a
palavra.

mudalinha.c

32. Faça um programa para responder coretamente a questão:

Nap.c
Exercícios
33.Escreva uma função estica(char s[]) que, na string s introduz um
espaço após cada caracter.
esticar.c
Exemplo:

34.Escrever um programa que recebe uma string e um caracter e


remove todas as ocorrências do caracter da string digitada.

removechar.c
Exercícios
35. Fazer um programa em "C" que lê uma string qualquer e diga:

1. - Quantos caracteres tem a string;


2. - Quantos caracteres são de pontuação;
3. - Quantos caracteres são números;
4. - Quantos caracteres são minúsculas.

quantostring.c

36. Fazer um programa em "C" que recebe um vetor de 10 números do


tipo float entre 1 e 100 e devolve:
- a média dos valores do vetor; vetor10.c
- o menor valor do vetor;
- o maior valor do vetor.
Exercícios
37.Escrever um programa que recebe uma string retire o caracter
duplicado da string digitada.
retira_igual.c

38.Faça um programa que solicite o nome do utilizador. O seu


programa irá gerar uma senha que é formada apenas pelos carateres
das posições ímpares, mais a soma dos carateres pares.

senha.c
Exercícios

39. Faça um programa que peça uma frase e de seguida retira todas
as letras ‘v’ ou ‘V’ de uma frase e substitui pela letra ‘b’ ou ‘B’
respetivamente. Ex:

v_por_b.c
Exercícios

Anagrama é quando se pega numa palavra e com as letras dela se


forma outras palavras. Ex: Roma .. Anagramas: Amor,Omar,Ramo etc

anagrama.c

You might also like