Sprawdzanie wielkości litery C++

Ostatania modyfikacja: 22 kwietnia 2019, kategoria: Matura z informatyki

Sprawdzania wielkości znaku w C++ nie było chyba jak dotąd na żadnej maturze. Na jednej z matur było zadanie, w której trzeba było napisać szyfr, bazujący na sposobie pozyskiwania wielkości litery. Tak czy tak, rozwiązanie warto znać ponieważ jest bardzo proste.

Sprawdzanie wielkości litery

Wszystkie litery i cyfry mają swoje określone kody ASCII. Są ona takie same na wszystkich komputerach oraz we wszystkich czcionkach. Dla przykładu, kodem ASCII litery a jest liczba 97. Cały alfabet małych liter poczynając od a ma kody ASCII kolejno coraz większe zaczynając od liczby 97.

Możesz to łatwo sprawdzić. Otwórz notatnik, naciśnij ALT a następnie trzymając alt naciśnij 97. Puść alt a Twoim oczom okaże się litera a. Tym prostym sposobem można w C++ sprawdzić czy wpisana litera jest duża czy mała, czy może jest cyfrą.

Wynika to z faktu, że małe litery mają inne kody ASCII niż te duże:

Użytkownik muttley napisał:

02 kwietnia 2013


Wg mnie lepiej byłoby użyć nagłówka cctype.h (zapamiętywanie określonych wartości to chyba słaby pomysł)

http://www.cplusplus.com/reference/cctype/

Użytkownik Karol napisał:

03 kwietnia 2013


Masz rację, że pomysł jest słaby. W dziale przygotowania do matury staram się wrzucać rozwiązania bez używania dodatkowych bibliotek, tak aby przeciętny Jurek umiał napisać i zrozumieć sortowanie ciągu liczb lub aby miał świadomość że każdemu znakowi odpowiada jakiś kod ASCII.

Dlatego staram się ograniczać używanie gotowych funkcji, oraz nie używam STL’a.

Użytkownik Marian napisał:

16 marca 2017


Niemniej panie Karolu, można zrobić to lepiej:
Pamiętaj o apostrofie (tzn nie wolno umieściś cudzysłowu)*

#include
#include

using namespace std;

int main()
{
char znak;

cout <> znak;

if ((znak >= ‚0’) && (znak <= '9')) cout << "Jest to cyfra." <= ‚a’) && (znak <= 'z')) cout << "Jest to mala litera." <= ‚A’) && (znak <= 'Z')) cout << "Jest to duza litera." << endl;

return 0;
}

Użytkownik Adam napisał:

19 grudnia 2018


A ja uważam, że takie elementarne wyłożenie tematu jest bardziej funkcjonalne.
Zajrzałem tu bo musiałem uzupełnić program o opcję „zaliczania testu” niezależnie czy podana odpowiedź będzie wprowadzona jako mała czy duża litera.
Tu sztuczka Mariana nie bardzo zadziała.
Program z pliku tekstowego pobiera dane wejściowe w tym „literkę” z prawidłową odpowiedzią.
Użytkownik po przeczytaniu pytania i czterech odpowiedzi (abcd) ma podać właściwą.
Otóż: if odpowiedz == prawidlowa)||(odpowiedz == prawidlowa + 32) punkt = 1 ;
W takim wypadku sprawdzenie zero jedynkowe czy liczba jest mała czy duża niewiele nam da.
Dzięki!

Zachęcam Cię do zostawienia komentarza!

Ilość znaków: 0