C++ :: Aufgabe #178
5 Lösungen
Groß- und Kleinuchstaben
Anfänger - C++
von MeLThRoX
- 22.08.2017 um 19:03 Uhr
Erstelle ein Programm, welches in einem String die Kleinbuchstaben in Großbuchstaben umwandelt und andersherum. Zahlen und Zusatzzeichen sollen nicht beachtet werden
Lösungen:
C-Code
#include <iostream> #include <string> #include <locale> #include <algorithm> int main() { std::cout << "Bitte einen String eingeben: "; std::string input; std::getline(std::cin, input); std::locale loc; std::transform(input.begin(), input.end(), input.begin(), [&loc](const auto c) { return std::islower(c, loc) ? std::toupper(c, loc) : std::tolower(c, loc); }); std::cout << "Wird zu: "; std::cout << input; }
C-Code
#include <cstdlib> // EXIT_SUCCESS #include <locale> #include <string> #include <iostream> #include <algorithm> // Kodierung des Quelltextes: utf8 // #178 - Groß- und Kleinuchstaben (Anfänger - C++ von MeLThRoX - 22.08.2017 um 19:03 Uhr) // Erstelle ein Programm, welches in einem String die Kleinbuchstaben in Großbuchstaben // umwandelt und andersherum. Zahlen und Zusatzzeichen sollen nicht beachtet werden. // Keine Ahnung ob der String vorgegeben oder eingelesen werden soll. Hier eine Version // mit einlesen bis zur Eingabe einer Leerzeile (oder eof). // // Diese Version *sollte* die locale-Einstellung beachten. Unter Linux funzt es halbwegs, // das kleine 'sz' (ß) wird aber nicht in ein großes verwandelt, umgekehrt schon. // Abhängig von Compiler, libstdc++ und Zeichenkodierung des jeweiligen Systems // Hier: // openSuse Tumbleweed // g++ (SUSE Linux) 7.2.1 20171020 [gcc-7-branch revision 253932] // g++ -Wpedantic -Wall -Wextra -std=c++17 klein_grossbuchstaben.cpp -o klein_grossbuchstaben int main() { using namespace std; const auto myLocale = locale(""); // Locale aus den Benutzereinstellung locale::global( myLocale ); wcout << "Prgramm zum umwandeln von Klein- in Großbuchstaben und umgekehrt,\n" "abhängig von der Landeseinstellung des Rechners.\n"; for( wstring text; wcout << "Text eingeben (leere Eingabe zum beenden): ", getline( wcin, text), text != L""; ) { transform(text.begin(), text.end(), text.begin(), [&myLocale](wchar_t c) { return ( islower(c, myLocale) ? std::toupper(c, myLocale) : std::tolower(c, myLocale)); } ); wcout << text << "\n"; } return EXIT_SUCCESS; }
C-Code
#include <cstdlib> // EXIT_SUCCESS #include <locale> #include <string> #include <iostream> #include <algorithm> // Kodierung des Quelltextes: utf8 // #178 - Groß- und Kleinuchstaben (Anfänger - C++ von MeLThRoX - 22.08.2017 um 19:03 Uhr) // Erstelle ein Programm, welches in einem String die Kleinbuchstaben in Großbuchstaben // umwandelt und andersherum. Zahlen und Zusatzzeichen sollen nicht beachtet werden. // Keine Ahnung ob der String vorgegeben oder eingelesen werden soll. Hier eine Version // mit einlesen bis zur Eingabe einer Leerzeile (oder eof). // // Diese Version *sollte* die locale-Einstellung beachten. Unter Linux funzt es halbwegs, // das kleine 'sz' (ß) wird aber nicht in ein großes verwandelt, umgekehrt schon. // Abhängig von Compiler, libstdc++ und Zeichenkodierung des jeweiligen Systems // Hier: // openSuse Tumbleweed // g++ (SUSE Linux) 7.2.1 20171020 [gcc-7-branch revision 253932] // g++ -Wpedantic -Wall -Wextra -std=c++17 klein_grossbuchstaben.cpp -o klein_grossbuchstaben // // Ausgabe: // # ./klein_grossbuchstaben // Prgramm zum umwandeln von Klein- in Großbuchstaben und umgekehrt, // abhängig von der Landeseinstellung des Rechners. // Text eingeben (leere Eingabe zum beenden): ABC 123 öäüß +- ÖÄÜẞ abc // Umgewandelter Text is: abc 123 ÖÄÜß +- öäüß ABC // Text eingeben (leere Eingabe zum beenden): int main() { using namespace std; const auto myLocale = locale(""); // Locale aus den Benutzereinstellung locale::global( myLocale ); wcout << L"Prgramm zum umwandeln von Klein- in Großbuchstaben und umgekehrt,\n" L"abhängig von der Landeseinstellung des Rechners.\n"; for( wstring text; wcout << "Text eingeben (leere Eingabe zum beenden): ", getline( wcin, text), text != L""; ) { transform( text.begin(), text.end(), text.begin(), [&myLocale](wchar_t c) { return ( islower(c, myLocale) ? std::toupper(c, myLocale) : std::tolower(c, myLocale)); } ); wcout << " Umgewandelter Text is: " << text << "\n"; } return EXIT_SUCCESS; }
C-Code
#include <iostream> using namespace std; char Groß (int); int main() { char q; cout << "Geben sie einen Kleinbuchstabe ein." << endl; cin >> q; cout << "Der Kleinbuchstabe ist \t " << Groß (q) << "\t als Grossbuchstabe geschrieben ." << endl; } char Groß (int i) { i = i +32; return i; }
C-Code
#include <iostream> #include <cctype> using namespace std; int main() { string txt; cout << "Text eingeben: "; getline(cin, txt); for(size_t i = 0; i < txt.length(); ++i) { if(isupper(static_cast<int>(txt.at(i)))) { txt.at(i) = tolower(txt.at(i)); } else { txt.at(i) = toupper(txt.at(i)); } } cout << "Neuer Text: " << txt << "\n"; }