Buscar

Exercício sobre string

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Universidade de Brasília 
Instituto de Ciências Exatas 
Departamento de Ciência da Computação 
 
Algoritmos e Programação de Computadores 
 
Atividades a serem desenvolvidas nas sessões de Laboratório 
 
Sessão 8: 
 
Objetivos: 
 
Exercitar a elaboração de programas que utilizam estruturas de dados do tipo vetor de 
caracteres (strings), além de funções com strings como parâmetros. 
 
Atividades: 
 
- Em todos os programas abaixo, solicite os dados do usuário e imprima os dados para o 
usuário usando mensagens explicativas adequadas. 
 
- Não se esqueça de utilizar o comando scanf("%[^\n]s%*c",string); para permitir a 
leitura de espaços em branco. 
 
- Você pode usar a função strlen para descobrir o tamanho da string. 
 
1. Uma prova de 10 questões com cinco alternativas (A, B, C, D e E) de múltipla 
escolha foi aplicada em uma turma. Faça um programa que leia o gabarito em uma 
string, o número de alunos e as respostas de cada aluno (em uma string), e diga a 
maior nota obtida. As leituras deverão ser feitas na main(). Crie uma função que 
recebe o gabarito e uma string com a resposta e retorne para a main() o número de 
acertos. Chame esta função dentro do loop na main() para cada comparação. 
EXEMPLO DE ENTRADA: 
Gabarito: ABCDEABCDE 
Nro alunos: 3 
Respostas aluno 1: ABCAABAAAA 
Respostas aluno 2: ABCDABAAAA 
Respostas aluno 3: ABCDEABCDD 
 
EXEMPLO DE SAÍDA: 
Maior nota obtida: 9 
 
2. Uma forma rudimentar de compactação pode ser a representação da multiplicidade 
de caracteres repetidos. Escreva um programa que leia uma cadeia de caracteres e 
para cada um deles que possua adjacentes iguais a ele, grave emu ma nova string o 
número de repetições e apenas uma cópia dele. Caso naquela ocorrência não haja 
repetições deve ser gravado apenas o caractere sem o número. Tamanho da string: 
máximo 25 posições. ATENÇÃO: o processo de compactação deve ser feito por 
uma função que recebe a string de entrada e devolve a string compactada (que 
deve ser mostrada na main). 
 
Exemplo de entrada: AAABCCCCCBBBCCAAA 
Exemplo de saída: 3AB5C3B2C3A 
 
Para transformar o número inteiro em um caractere antes de colocar na string, 
adicione '0' ao número. Exemplo: 

frase[j]=cont+'0' onde cont é um número inteiro e 
frase[j] é uma posição da string (vetor de char). 
3. Faça um programa que leia, via teclado, duas strings (de no máx. 20 posições) 
formadas apenas por letras e espaços brancos. O programa deve repassar estas duas 
strings para uma função que imprime uma lista das palavras que aparecem 
simultaneamente nas duas strings. Pode-se supor que em cada uma das strings não 
há palavras repetidas. Obs: lembre-se de que as frases digitadas podem ser menor 
que 20. Neste programa a impressão é feita na função. Não há retorno! 
 
4. Crie um programa que leia o nome de uma pessoa (máx. 20 caracteres) e envie para 
uma função que inverte este nome, ou seja, cria uma nova string com o mesmo 
conteúdo de trás para frente. Obs: lembre-se de que o nome digitado podem ser 
menor que 20. A função deve retornar a nova string que será mostrada na main. 
 
5. Faça um programa que contém uma função para copiar n caracteres da string s1 na 
string s2, começando pela posição i da string s1. O usuário deve informar na main 
s1, n, e i. As strings s1 e s2 devem ter 20 posições. A string s2 deverá ser criada 
pela função e mostrada na tela na main. 
 
6. Faça um programa que contém uma função para remover n caracteres de uma string 
s, a partir da posição i. O usuário deve informar na main s, n, e I que serão 
repassados à função. A string s deverá ter 20 posições e ser mostrada na tela na 
main após a remoção dos n caracteres feita pela função na mesma string. 
 
7. Faça um programa que contém uma função que procura uma palavra (pvelha) em 
uma frase (fr) e a substitui por outra palavra (pnova). Supõe-se que a frase seja 
formada apenas por palavras e espaços brancos, podendo haver qualquer quantidade 
de espaços em branco entre as palavras. A string fr deve ter 25 posições e pvelha e 
pnova devem ter 10 posições. As strings pvelha, pnova e fr deverão ser repassadas 
para a função que criará uma nova string para guardar a nova frase. Esta nova frase 
deverá ser mostrada na tela na main. 
 
8. Faça um programa que leia na main uma string de 25 posições. Assuma que seja 
formada apenas por letras e espaços brancos. Esta string deverá ser passada para 
uma função que criará outra string, formada pelas mesmas palavras, na mesma 
ordem, mas cada uma delas escrita em ordem inversa. O programa deve mostrar a 
nova string na tela na main. 
Exemplo: 
Entrada: abcd ghi rstu vwxyz 
Saída: dcba ihg utsr zyxwv 
 
 
9. Na tabela ASCII, os dígitos de '0' a '9' estão em uma sequência. Isso significa que: 
 '0' - '0' = 0 
 '9' - '0' = 9 
 c - '0' = número representado por c, se c é um dígito. 
 Utilizando esta idéia, faça uma função que recebe uma string composta apenas por 
dígitos e retorna o número inteiro que esta string representa (na base 10). 
 Exemplo de entrada (lida como string): 089568 
 Saída (como inteiro): 89568

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes