Jump to content
worm69

Determinar tipo de carácter

Recommended Posts

worm69

Boas desde ja obrigado pela atença precisava de ajuda no seguinte exercicio podiam me ajudar?

Exercício 8

a) Desenvolva um programa que diga se um dado carácter lido é do tipo algarismo, letra minúscula, letra maiúscula ou de um tipo não alfanumérico.

Share this post


Link to post
Share on other sites
worm69

peço desculpa por nao ter referido a duvida -.-

Graças a ideia do happyhippyhippo ja acabei a primeira parte do exercicio mas a parte nao ta a funcionar bem nao concigo coverter maiusculas para minusculas ou viseversa.

Exercício 8

a) Desenvolva um programa que diga se um dado carácter lido é do tipo algarismo,

letra minúscula, letra maiúscula ou de um tipo não alfanumérico.

b) Altere o programa de forma a que, caso o carácter lido seja um letra, a mesma seja

mostrada quer em minúscula quer em maiúscula.

#include <stdio.h>
#include <ctype.h>
main(){
   char ch;
  printf("Introduza uma caracter: ");
  scanf(" %c", &ch); /* ou ch=getchar(); */
  printf("O caracter '%c' tem o ASCII nº %d\n", ch, ch);
  if (isdigit(ch))
  printf("O caracter inserido e do tipo algarismo.\n");

  if (islower(ch))
  printf("O caracter inserido e letra minuscula.\n");
 //  if (toupper(ch))
 //    printf("A maiuscula e %d\n", ch);
  if (isupper(ch))
  printf("O caracter inserido e letra maiuscula.\n");
  // if (tolower(ch))
   //printf("A minuscula e %c\n", ch);
  if (!isalnum(ch))

    printf("O caracter inserido e do tipo nao alfanumerico.\n");
}

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites
thoga31

Para mostrar num case invertido, não podes encaixar em nenhum if. Não estás a analisar uma condição, estás a inverter o case do caracter. Basta mostrá-lo!

printf("%c", toupper(ch));

  • Vote 1

Knowledge is free!

Share this post


Link to post
Share on other sites
worm69

pois ta certo tenho de tar mais atento e obrigado XD

fica aqui pa se alguem tiver uma duvida parecida ou igual

#include <stdio.h>
#include <ctype.h>
main(){
   char ch;
  printf("Introduza uma caracter: ");
  scanf(" %c", &ch); /* ou ch=getchar(); */
  printf("O caracter '%c' tem o ASCII nº %d\n", ch, ch);

  if (isdigit(ch))
  printf("O caracter inserido e do tipo algarismo.\n");

  if (islower(ch))
  printf("O caracter inserido e letra minuscula.\n");
  if (islower(ch))
  printf("A maiuscula e %c\n", toupper(ch));

  if (isupper(ch))
  printf("O caracter inserido e letra maiuscula.\n");
  if (isupper(ch))
  printf("A minuscula e %c\n", tolower(ch));

  if (!isalnum(ch))

 printf("O caracter inserido e do tipo nao alfanumerico.\n");
}

Edited by worm69

Share this post


Link to post
Share on other sites
Rui Carlos

Aproveita agora para tentar fazer isso sem usares as funções do ctype (o que com um pouco de sorte era o objectivo do exercício). Não é nada de complicado, só precisas de fazer comparações.

Share this post


Link to post
Share on other sites
HappyHippyHippo

pois ta certo tenho de tar mais atento e obrigado XD

fica aqui pa se alguem tiver uma duvida parecida ou igual

#include <stdio.h>
#include <ctype.h>

int main(void) {
 char ch;

 printf("Introduza uma caracter: ");
 if (scanf(" %c", &ch) != 1) {
   printf("Erro de leitura do caracter\n");
   return -1;
 }

 printf("O caracter '%c' tem o ASCII nº %d\n", ch, ch);

 if (isdigit(ch)) {
   printf("O caracter inserido e o algarismo : %c.\n", ch);
 } else if (isalpha(ch)) {
   if (islower(ch)) {
     printf("O caracter inserido e a letra minuscula %c sendo a sua maiuscula : %c.\n", ch, toupper(ch));
   } else {
     printf("O caracter inserido e a letra maiuscula %c sendo a sua minuscula : %c.\n", ch, toupper(ch));
   }
 } else {
    printf("O caracter inserido e nao e alfanumerico.\n");
 }

 return 0; 
}


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Flinger

#include <stdio.h>
#include <ctype.h>

int main(void) {
 char ch;

 printf("Introduza uma caracter: ");
 if (scanf(" %c", &ch) != 1) {
printf("Erro de leitura do caracter\n");
return -1;
 }

 printf("O caracter '%c' tem o ASCII nº %d\n", ch, ch);

 if (isdigit(ch)) {
printf("O caracter inserido e o algarismo : %c.\n", ch);
 } else if (isalpha(ch)) {
if (islower(ch)) {
  printf("O caracter inserido e a letra minuscula %c sendo a sua maiuscula : %c.\n", ch, toupper(ch));
} else {
  printf("O caracter inserido e a letra maiuscula %c sendo a sua minuscula : %c.\n", ch, tolower(ch));
}
 } else {
 printf("O caracter inserido e nao e alfanumerico.\n");
 }

 return 0;
}

Pequena correcção (tolower em vez de toupper);

Edited by Flinger

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.