Isto seria um programa simples de se fazer. Bastaria usar algumas das funções já existentes na linguagem C/C++. Mas, porém, contudo, os professores exigem dos alunos é que eles usem vetor e a tabela ASCII. E nem todos sabem como fazer. Então, supro esta sua necessidade. Como é que faz? Eis abaixo em partes.
Parte 1: Pegando a String.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main ()
{
char palavra[20];
int tam,i;
printf("Digite uma palavra: ");
scanf("%s",&palavra);
printf("\nA palavra digitada foi: %s ",palavra);
printf("\n\n");
printf("\n\n");
system("pause");
}
O código acima é suficiente para coletar do usuário uma palavra. E sem espaço. Se você usar espaço o programa vai desconsiderar depois do ‘\0’. Se rodar o código acima ele vai apenas receber uma palavra e depois exibir na tela.
Depois de você ler as informações você vai ter que fazer a conversão. Para tal, o código abaixo deve ser inserido no código acima.
tam = strlen(palavra);
for (i=0;i < tam;i++)
{
palavra[i] = palavra[i]-32;
}
Você pode usar assim, como acima que funciona. A variavel “tam” através da função strlen() recebe o valor inteiro da quantidade de letras digitada. Você pode economizar escrevendo o código assim:
for (i=0;i < strlen(tam);i++)
{
palavra[i] = palavra[i]-32;
}
O que é que muda? A variavel “tam” é usada dentro do laço e vai ter a mesma ação, que é, pegar o tamanho em inteiro da quantidade de letras digitadas na palavra[i]. É esta a função de strlen(tam). Str=string e len=lenght. Tamanho da String. Usando desta maneira, você economiza a linha de atribuição: tam = strlen(palavra);
O código: palavra[i] = palavra[i]-32 é quem converte a sua palavra em minúsculo para MAIÚSCULA. Mas, como é que funciona? Simples: na tabela ASCII toda e qualquer letra minúscula, menos 32, vai para a mesma letra em maiúscula. Não acredita? Faz o teste: abra o Bloco de Notas e segure a tecla ALT da esquerda e então digite no teclado Numérico o número 97. Vai sair a letra ‘a’ em minúsculo. 97-32=65 não é? Então! Faça a mesma coisa. Segure ALT da esquerda e aperte no teclado númerico 65 e você vai ter uma letra A, em maiúscula.
Então é por isto que o código palavra[i] = palavra[i]-32 vai converter a palavra minúsculo para maiúscula. Não esquecer do que muito se repete: toda cadeia de string é na verdade um vetor. O código completo fica assim:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main ()
{
char palavra[20];
int tam,i;
printf("Digite uma palavra: ");
scanf("%s",&palavra);
printf("\nA palavra digitada foi: %s ",palavra);
printf("\n\n");
for (i=0;i < strlen(tam);i++)
{
palavra[i] = palavra[i]-32;
}
printf("A palavra em maiusculas %s " ,palavra);
printf("\n\n");
system("pause");
}
Nenhum comentário:
Postar um comentário