char als immer groß definieren

Hier gehts um die schöne Sprachen C und C++
Antworten
Benutzeravatar
BlackDevil
Null-Leiter
Beiträge: 407
Registriert: Samstag 15. Oktober 2005, 15:38
Kontaktdaten:

char als immer groß definieren

Beitrag 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?
Wanderer
Null-Leiter
Beiträge: 606
Registriert: Dienstag 27. Dezember 2005, 11:23
Wohnort: Hessen

Beitrag 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!
Wanderer, kommst du nach Sparta, verkündige dorten, du habest uns hier liegen gesehn, wie das Gesetz es befahl.
Benutzeravatar
BlackDevil
Null-Leiter
Beiträge: 407
Registriert: Samstag 15. Oktober 2005, 15:38
Kontaktdaten:

Beitrag 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++
Benutzeravatar
BlackDevil
Null-Leiter
Beiträge: 407
Registriert: Samstag 15. Oktober 2005, 15:38
Kontaktdaten:

Beitrag 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
Funkenschlosser
Null-Leiter
Beiträge: 360
Registriert: Samstag 24. Juni 2006, 10:02

Beitrag 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
jf27el
Null-Leiter
Beiträge: 4312
Registriert: Donnerstag 2. August 2007, 09:10
Wohnort: BW

Beitrag von jf27el »

Gibt es das bei C nicht einfach den 2hoch7 Bit zu setzen?

Oder bin ich auf der komplett falschen Baustelle?

Gruß
jf27el
Timo-23
Null-Leiter
Beiträge: 83
Registriert: Freitag 11. November 2005, 09:07
Kontaktdaten:

ctype

Beitrag 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
Benutzeravatar
BlackDevil
Null-Leiter
Beiträge: 407
Registriert: Samstag 15. Oktober 2005, 15:38
Kontaktdaten:

Beitrag 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 ;)
Antworten