Funktion für alle Buchstaben groß?
-
Gibt es eine C99-Funktion, die alle Buchstaben eines Strings in Großbuchstaben (alternativ: Kleinbuchtaben) umwandelt oder muss ich mir da selbst was schreiben. VC++ 6 macht jedenfalls keinerlei Vorschläge wenn ich zum Punkt ansetze

In dem Zusammenhang gibt es in C++ vielleicht eine Funktionsreferenz, die ähnlich gut wie die von php.net für PHP ist? Es ist einfach nervig, wenn man die Funktionsnamen nicht kennt und grad kein C++-Buch zur Hand hat.
-
Hallo,
Meinst du nun C99 oder C++? Ansonsten schau mal nach toupper() (tolower()).
-
Ich dächte C99 wäre der Standard für C++ von 99, kann aber auch sein, dass ich mich falsch erinner, ist schon eine Zeit her, dass ich das gelesen habe. Worum es mir ging war, dass es nicht unbedingt MS-spezifisch sein soll

Also toupper() kennt der Compiler nicht.
-
Nein, mit C99 bezeichnet man die Programmiersprache C entsprechend dem Standard von 1999. Der gültige C++Standard ist von 1998 (plus einiger Revisionen, zuletzt glaube ich 2003).
toupper und tolower sind nich MS-spezifisch. Hier im Forum gibt es auch schon einige Threads dazu.
-
Der Compiler kennt es aber nicht.
string tmp = save[1].toupper();...Text1.cpp(70) : error C2039: 'toupper' : Ist kein Element von 'basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' Fehler beim Ausführen von cl.exe.
-
Du solltest doch mal die Suche bemühen.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-153684.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-148124.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-130436.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-115533.html
-
Das ist ja auch verkehrt herum:
string tmp; transform(save[1].begin(),save[1].end(),back_inserter(tmp),toupper);(alternativ kannst du auch eine eigene Schleife schreiben ;))
-
Ich verstehe wirklich nicht warum man in C(++) so oft aus einer Mücke einen Elefanten macht

Aber danke für Eure Hilfe

-
Das ist in diesem Fall schon Ok. std::string hat für meine Begriffe schon zu viele Memberfunktionen.
-
Dafür muss ich jetzt <algorithm> einbinden und habe immer noch einen Fehler

c:\programme\microsoft visual studio\vc98\include\iterator(82) : error C2039: 'push_back' : Ist kein Element von 'basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' c:\programme\microsoft visual studio\vc98\include\iterator(82) : Bei der Kompilierung der Member-Funktion 'class std::back_insert_iterator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > &__thiscall std::back_insert_iterator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >::operator =(const char &)' der Klassenvorlage Fehler beim Ausführen von cl.exe.
-
Das liegt an deinem VC6. Da wirst du wohl mal auf einen neueren Compiler wechseln müssen oder statt transform eine Schleife nehmen. Der back_inserter verlangt push_back und den gibt es wohl bei dir bei string nicht.