C++ :: Aufgabe #178

5 Lösungen Lösungen öffentlich

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:

vote_ok
von Mathes (130 Punkte) - 30.09.2017 um 17:27 Uhr
Quellcode ausblenden 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;
}
vote_ok
von dirk (150 Punkte) - 05.12.2017 um 10:21 Uhr
Quellcode ausblenden 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;
}
vote_ok
von dirk (150 Punkte) - 05.12.2017 um 13:16 Uhr
Quellcode ausblenden 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;
}
vote_ok
von Thegamer96 (20 Punkte) - 30.12.2017 um 15:25 Uhr
Quellcode ausblenden 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;
}
vote_ok
von basic (1310 Punkte) - 01.10.2020 um 21:54 Uhr
Quellcode ausblenden 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";
}