String in Großbuchstaben konvertieren in C?
Hallo wie kann man einen String in C in Großbuchstaben konvertieren? Ich weiß,dass das mit der Funktion isupper funktioniert,aber wie weiß ich nicht. Danke
2 Antworten
- mit isupper() kannst du rausfinden, ob es sich um einen Großbuchstaben handelt...
- mit islower() kannst du rausfinden, ob du ein Zeichen in einen Großbuchstaben umwandeln musst...
wenn es nur um [a-z] geht (also nich um Umlaute [äöü]), dann geht es recht einfach:
void gross(char * buf) {
for (; *buf; buf++)
if (islower(*buf))
(*buf) += 'A' - 'a';
}
Woher ich das weiß:Studium / Ausbildung
RIDDICC
02.09.2019, 21:08
@KarlRanseierIII
- wieso? der String muss eben NUL-terminiert sein... ist doch normal... oda?
- hab mir grad das Gesicht mit Katzenstreu respektive Zeolith eingerieben... und würde jetzt lieber „buf[0]+= 'A' - 'a';“ schreiben... LOL
KarlRanseierIII
02.09.2019, 21:56
@RIDDICC
Nain nein, funktionieren tut das soweit ... es ist eben nur so richtig 'dreckig', also unästhetisch. Stört mich persönlich natürlich nicht, bin ja auch nicht besser :-D.
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren
Nein, es funktioniert eher mit toupper unter Zuhilfenahme von isupper.
Du iterierst über den String und schaust eben bei jedem Zeichen ob es geändert werden muß und änderst es dann.
ja, toupper() klappt dann auch mit [äöü], wenn LOCALE richtig ge-conf-t ist...
Mmmmh, richtig schön dreckig....