Mudanças entre as edições de "Sistemas Operacionais e Introdução a Programação (diário 2009-2) - Atividades para revisão dos conceitos de C - Respostas"
Ir para navegação
Ir para pesquisar
Linha 12: | Linha 12: | ||
int indice; | int indice; | ||
− | // Verifica se o usuário digitou pelo menos um argumento: | + | // Verifica se o usuário digitou pelo menos um argumento. |
− | if(argc | + | // Se sim, aproveita e copia essa informação para a variável "palavra": |
+ | if(argc > 1) | ||
{ | { | ||
− | printf("Digite uma palavra | + | strcpy(palavra, argv[1]); |
− | + | } | |
− | + | else | |
+ | { | ||
+ | // Se não digitou, pede ao usuário uma palavra nova: | ||
+ | printf("Digite uma palavra: "); | ||
+ | scanf("%s", palavra); | ||
} | } | ||
− | // | + | // Conta quantas letras possui a palavra - para saber qual é a penúltima :-) |
− | + | tamanho = strlen(palavra); | |
− | tamanho = strlen( | ||
// Apresenta a palavra original: | // Apresenta a palavra original: | ||
printf("A palavra original é: %s\n", palavra); | printf("A palavra original é: %s\n", palavra); | ||
− | + | // | |
− | // Apresenta a palavra | + | // Apresenta a palavra modificada: |
printf("A palavra sem a penúltima letra é: "); | printf("A palavra sem a penúltima letra é: "); | ||
// As primeiras letras até chegar à penúltima letra (sem mencioná-las) | // As primeiras letras até chegar à penúltima letra (sem mencioná-las) | ||
Linha 37: | Linha 41: | ||
// Deve-se, portanto, mostrar na tela a letra à direita (+1): | // Deve-se, portanto, mostrar na tela a letra à direita (+1): | ||
printf("%c\n", palavra[indice+1]); | printf("%c\n", palavra[indice+1]); | ||
− | } | + | }</syntaxhighlight> |
− | </syntaxhighlight> | ||
* Faça o mesmo que o programa anterior, desta vez para uma frase completa: omitirá a última palavra | * Faça o mesmo que o programa anterior, desta vez para uma frase completa: omitirá a última palavra |
Edição das 13h10min de 30 de novembro de 2009
Manipulação de String
- Leia uma palavra e a repita, omitindo a penúltima letra.
#include <stdio.h>
#include <string.h>
int main(int argc, char * argv[])
{
char palavra[100];
int tamanho;
int indice;
// Verifica se o usuário digitou pelo menos um argumento.
// Se sim, aproveita e copia essa informação para a variável "palavra":
if(argc > 1)
{
strcpy(palavra, argv[1]);
}
else
{
// Se não digitou, pede ao usuário uma palavra nova:
printf("Digite uma palavra: ");
scanf("%s", palavra);
}
// Conta quantas letras possui a palavra - para saber qual é a penúltima :-)
tamanho = strlen(palavra);
// Apresenta a palavra original:
printf("A palavra original é: %s\n", palavra);
//
// Apresenta a palavra modificada:
printf("A palavra sem a penúltima letra é: ");
// As primeiras letras até chegar à penúltima letra (sem mencioná-las)
for(indice = 0; indice < tamanho-2; indice++)
{
printf("%c", palavra[indice]);
}
// Nesse ponto, indice está indicando a posição da penúltima letra.
// Deve-se, portanto, mostrar na tela a letra à direita (+1):
printf("%c\n", palavra[indice+1]);
}
- Faça o mesmo que o programa anterior, desta vez para uma frase completa: omitirá a última palavra
Interpretação da Entrada de Dados
- Leia um número como parâmetro do programa e escreva-o na forma extensa.
Aplicação de Funções
- Resolva o problema, mas desta vez utilize uma função em separado para cada dezena:
- Uma função para converter número de 0 a 9.
- Uma função para converter número de 10 a 19.
- Uma função para converter número de 20 a 29.