Abfrage in dec?

11/28/2010 22:39 Imperial Blaze#1
Hallo Leute,
ich habe mir hier schnell ein kleines Programm zum üben geschrieben und hab nun eine Frage.

Der Code sieht so aus:

Code:
/*
Autor: ******
E-mail: ******
Datum: 28.11.2010
Programm: Check if letter is uppercase or not
*/

using namespace std;
#include <iostream>

char x;

void main()
{
	cout << "Bitte geben sie nun einen Buchstaben ihrer Wahl ein" << endl;
	cin >> x;
	cout << endl;
	cout << endl;

	if( x >= 'a' && x <= 'z'  )
	{
		cout << "Sie haben den Buchstaben " << x << " klein eingetippt" << endl;
	}

	else
	{
		cout << "Sie haben den Buchstaben " << x << " gross eingetippt" << endl;
	}
	

}

Nun weiß ich das klein a und klein z in der ASCII Tabelle den hex Wert 61 und 7A haben.
Ist es möglich die If Abfrage so zu gestalten, dass man die Range auch in hex definieren kann?
11/28/2010 22:43 nkkk#2
Code:
if(x >= (char) 0x61)
.....
vieleicht kann man das "(char)" auch weglassen
so wie du es gemacht hast, also mit 'a' ist es aber besser

ps: globale variablen sind eig auch zu vermeiden wenn es keinen Grund dafür gibt, ich würde dir dazu raten die variable x innerhalb von main zu definieren
11/28/2010 22:51 Imperial Blaze#3
Danke, klappt super! :)
12/01/2010 23:22 Medix#4
Quote:
void main()
welcher compiler lässt denn das noch zu?


PS: Zahl deine verdammten schulden bei mir du betrüger.
12/02/2010 01:00 MrSm!th#5
Wie immer alle Autoit mit C++ gleichsetzen....

Eine Zahl ist eine Zahl ist eine Zahl.
Man muss da nichts speziell konvertieren oder deklarieren, ob du gegen eine Hex Zahl oder eine Dezimal Zahl prüfst, ist völlig wumpe, das Ergebnis bleibt das selbe.
Also schaust du in der ASCII Tabelle, welchen Wert 'a' in Dez. hat und schreibst statt == 0x61 eben den Dez. Wert hin (oder du rechnest selbst :D)

Am besten ist immer noch so, wie du es geschrieben hast, durch 'a' wird automatisch der ASCII Wert eingesetzt und mit dem wird auch verglichen.
Und das im Prozessor sogar binär :p Die Darstellungen sind nur in Strings wichtig, also, wie sie uns angezeigt werden, für den Rechner ists eh nur 1 und 0.
12/02/2010 09:33 MoepMeep#6
Quote:
Originally Posted by Medix View Post
welcher compiler lässt denn das noch zu?


PS: Zahl deine verdammten schulden bei mir du betrüger.
Jeder mir bekannte.
12/02/2010 18:27 Medix#7
Quote:
Originally Posted by MoepMeep View Post
Jeder mir bekannte.
GNU GCC & Microsoft Visual C++ Compiler lassen es jedenfalls nicht zu mit den standard settings.
12/02/2010 19:59 MoepMeep#8
Quote:
Originally Posted by Medix View Post
GNU GCC & Microsoft Visual C++ Compiler lassen es jedenfalls nicht zu mit den standard settings.
Visual Studio 2008 lässt es auf jedenfall zu ;)