Sprawdzanie czy wprowadzono małą literę, dużą, cyfrę czy znak.

0

Cały czas wyświetla mi się, że są to małe litery mimo tego, że wpisałem dużą literę albo cyfrę.

#include <stdio.h>

int main()
{
  
  char znak;
  printf("Podaj znak: ");
  scanf("%c", &znak); //zawartość pola wejściowego c oznacza kod ASCII
  if(znak>=97 || znak<=122)
  {
	printf("\nMale litery");
  }
  else if(znak>=65 || znak<=90)
  {
       printf("\nDuze litery");
  }
  else if(znak>=48 || znak<=57)
  {
       printf("\nCyfry");
  }
  else
  {
      printf("Inne znaki.");
  }
  getch();	
  return 0;
}
 
 
#include <stdio.h>

int main()
{
  
  char znak;
  printf("Podaj znak: ");
  scanf("%c", &znak); //zawartość pola wejściowego c oznacza kod ASCII
  if(znak>=97 /*|| znak<=122*/)
  {
	printf("\nMale litery");
  }
  /*else if(znak>=65 || znak<=90)
  {
       printf("\nDuze litery");
  }
  else if(znak>=48 || znak<=57)
  {
       printf("\nCyfry");
  }*/
  else
  {
      printf("Inne znaki.");
  }
  getch();	
  return 0;
}

Jak zrobię tak to wyświetla mi jak wpisze małą literę, to mała litera, jak coś innego to, że inne znaki, czyli chyba źle pisze instrukcje warunkowe wyżej. Czy w C można pisać else if(warunek lub warunek)?

0

Pytanie czy można to zrobić nie korzystając z tych gotowych funkcji?

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

int main()
{
  
  char znak;
  printf("Podaj znak: ");
  scanf("%c", &znak); //zawartość pola wejściowego c oznacza kod ASCII
  if(islower(znak))
  {
	printf("\nMale litery");
  }
  else if(isupper(znak))
  {
       printf("\nDuze litery");
  }
  else if(isdigit(znak))
  {
       printf("\nCyfry");
  }
  else
  {
      printf("Inne znaki.");
  }
  getch();	
  return 0;
}
1

zamień || na &&

1 użytkowników online, w tym zalogowanych: 0, gości: 1