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"

De MediaWiki do Campus São José
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 < 2)
+
// Se sim, aproveita e copia essa informação para a variável "palavra":
 +
if(argc > 1)
 
{
 
{
printf("Digite uma palavra como argumento do programa.\n");
+
strcpy(palavra, argv[1]);
// Encerra o programa indicando erro.
+
}
return -1;
+
else
 +
{
 +
// Se não digitou, pede ao usuário uma palavra nova:
 +
printf("Digite uma palavra: ");
 +
scanf("%s", palavra);
 
}
 
}
  
// Copia a palavra para uma variável e conta quantas letras possui:
+
// Conta quantas letras possui a palavra - para saber qual é a penúltima :-)
strcpy(palavra, argv[1]);
+
tamanho = strlen(palavra);
tamanho = strlen(argv[1]);
 
  
 
// 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 modifica:
+
// 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.



Voltar para diário da disciplina