Seite 1 von 1

char als immer groß definieren

Verfasst: Sonntag 18. November 2007, 12:50
von BlackDevil
Servus

ich hab folgendes stehen

Code: Alles auswählen

char op;

cin >> op;

cout << op;
Mein Code is nur etwas größer deshalb hier mal die Kurzversion!

ich möchte nun folgendes erreichen:

Code: Alles auswählen

Eingabe:       Ausgabe:
    x                  X
    X                  X
möchte also erreichen das egal was ich eingeb das ganze in der Variable als groß gespeichert wird. Das machts einfach als zu Prüfen ob der Deppe Benutzer das jetz groß oder klein geschrieben hat und egalisiert das ganze zusätzlich (is eleganter).

Uppercase soll das wohl machen aber mein MS Visual C++ meckert das das mit einem Char nich geht ^^

Hat jemand eine idee?

Verfasst: Sonntag 18. November 2007, 13:00
von Wanderer
Naja, CHAR und BYTE unterscheiden sich normal nicht. Schau dir die ASCII-Tabelle an und addiere einfach einen negativen Offset darauf (32) wenn der Wert zwischen 0x61 und 0x7a liegt.

EDIT: Brauchst du das fürs Studium/Ausbildung? Ansonsten würde ich dir empfehlen nimm 'ne Skriptsprache und mach dir das Leben leichter!

Verfasst: Sonntag 18. November 2007, 13:11
von BlackDevil
gibts da keinen befehl? Wollte nich schon wieder ne if anweisung ^^ weil sonst kann ich auch sagen

Code: Alles auswählen

if(op==x)
op=X
if(op==t)
op=T
und so weiter

das wär totale arbeit und nich grad schöner Stil. Ein Befehl wäre mir ganz lieb das ich sowas wie uppercase verwende (das funzt nur nich ...)

Ja ich brauch das fürs Studium. Im Hobby würde ich Atmels Programmieren, da komm ich auch um C nich drum rum ^^ aber wir lernen in Sem.1 erstma C++

Verfasst: Sonntag 18. November 2007, 13:35
von BlackDevil
ah ch hab ne lösung gefunden

Geht ja im späteren Verlauf um die Auswertung als Switch Case

Code: Alles auswählen

switch(op){
case 'x':
case 'X':
STATEMENT

case 'o':
case 'O':
STATEMENT
}
usw


wunderbar. Danke

Verfasst: Sonntag 18. November 2007, 23:14
von Funkenschlosser
Schreib doch einfach:

char op;

cin >> op;

if('a' <= op && op <= 'z') // Ist es ein Kleinbuchstabe?
op -= ('a' - 'A'); // ja, dann ändern!

cout << op;

---

Warum immer so kompliziert.....;)

Funky

Verfasst: Montag 19. November 2007, 06:08
von jf27el
Gibt es das bei C nicht einfach den 2hoch7 Bit zu setzen?

Oder bin ich auf der komplett falschen Baustelle?

Gruß
jf27el

ctype

Verfasst: Montag 19. November 2007, 09:15
von Timo-23
Hallo,
in der "ctype" Bibliothek gibt es die Funktionen tolower() und toupper()
sie wandeln einen String in Klein- bzw. Großbuchstaben um.

Weitere Informationen findest du im OpenBook vom Galileo Verlag:
http://www.galileo-press.de/openbook/c_ ... 731F03618C

Gruß Timo

Verfasst: Dienstag 20. November 2007, 20:09
von BlackDevil
Wenn ich ne riesiege if schleife und nen switch case kram mach ... das is käse mach ich glei switch case
weniger fehler anfällig weil keine Logik

mit toupper hab ich probiert das löft nich

aber hab ja ne lösung ;)