Verkettung von Namen?
-
Ich bin dabei ein Programm zu schreiben, welches als erstes nach Vorname und Nachname frägt und anschließend den zusammengesetzten Namen in einer neuen Zeile wiedergeben soll.
Wie porgrammiert man es, dass der erste Buchstabe immer Groß ist und die anderen klein, unabhängig von der Eingabe? Ich hab gelesen man müsste mit toupper()arbeiten?Gruß
-
gustlbert schrieb:
Ich bin dabei ein Programm zu schreiben, welches als erstes nach Vorname und Nachname frägt und anschließend den zusammengesetzten Namen in einer neuen Zeile wiedergeben soll.
Wie porgrammiert man es, dass der erste Buchstabe immer Groß ist und die anderen klein, unabhängig von der Eingabe? Ich hab gelesen man müsste mit toupper()arbeiten?Gruß
Ja, toupper ist eine Funktion aus der <cctype>. War der zweite Google-Eintrag

Edit: Für den Fall, dass du es noch nicht ganz begriffen hast, eine kleine Hilfestellung:
#include <iostream>//std::cout, std::cin #include <cctype>//(std::)toupper #include <string>//std::string, std::getline int main() { std::string vorname, nachname;//Deklaration der vorname/nachname strings std::cout << "Bitte Vornamen eingeben: "; std::getline(std::cin, vorname);///PI zuliebe, Funktion zum einlesen aus einem istream& in einen string& bis zu einem (default-parametrisierten) delimitter std::cout << "Bitte Nachnamen eingeben: "; std::cin >> nachname;///Es gibt keine Nachnamen mit Leerzeichen, nicht? (Man beachte, dass getline bis zum vorgegebenen Delimitter liest, der shift-Operator von istream allerdings nur bis zum nächsten whitespace vorname.at(0) = std::toupper(vorname.at(0));//Den ersten Buchstaben jeweils von vorname und nachname toupper übergeben und den zurückgegebenen Wert wieder als Anfangsbuchstaben setzen nachname.at(0) = std::toupper(nachname.at(0)); std::cout << "Ihr Name ist " << vorname << ' ' << nachname << '\n'; }
-
Hacker schrieb:
Es gibt keine Nachnamen mit Leerzeichen, nicht?
http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
-
Hacker schrieb:
Es gibt keine Nachnamen mit Leerzeichen, nicht?
de Jong, zu Guttenberg, van der Saar.
Den zweiten Teil der Aufgabe - die anderen Buchstaben sollen klein sein - hast du gar nicht berücksichtigt. Bei Umlauten versagt dein Code ebenfalls.
Edit: Ich bin etwas kleinlicher wegen deines
Wenn man den gegenüber einem Anfänger benutzt, sollte man die Aufgabe wenigstens selbst hinkriegen.
-
Michael E. schrieb:
Den zweiten Teil der Aufgabe - die anderen Buchstaben sollen klein sein - hast du gar nicht berücksichtigt.
Oh, schade, das habe ich nicht gesehen. Das zu implementieren wäre aber auch nicht verdammt schwer.
Zu den Umlauten: Dann kann man sich gleich eine eigene Funktion toupper/tolower schreiben.
-
Hacker schrieb:
Zu den Umlauten: Dann kann man sich gleich eine eigene Funktion toupper/tolower schreiben.
Schau dir mal Lokalisierung in C++ an.
-
Michael E. schrieb:
Hacker schrieb:
Zu den Umlauten: Dann kann man sich gleich eine eigene Funktion toupper/tolower schreiben.
Schau dir mal Lokalisierung in C++ an.
So funktioniert es aber auch

-
schrecklicher code...
-
unskilled schrieb:
schrecklicher code...
Würds gern mit locales machen, nur schmeißen die (seti neuestens) Andauernd exceptions- KP Warum.
-
Hacker schrieb:
unskilled schrieb:
schrecklicher code...
Würds gern mit locales machen, nur schmeißen die (seti neuestens) Andauernd exceptions- KP Warum.
Dann stell du doch ein paar Fragen dazu im Forum, anstatt deine schrecklichen Hacks an empfängliche Anfänger weiterzugeben.
-
Vielen Dank für die Hilfe!!

Wie könnte ich jetzt noch die Länge der Zeichenkette am Ende vom gesamtem Namen abfragen?
-
gustlbert schrieb:
Vielen Dank für die Hilfe!!

Wie könnte ich jetzt noch die Länge der Zeichenkette am Ende vom gesamtem Namen abfragen?Strings addieren, und dann
length()abfragen.Strings haben die Methode
length()(size()funktioniert auch, ist dasselbe), die deren Länge ausgibt. Mit dem überladenen +-Operator lassen sich Strings addieren.Also so:
(vorname + nachname).length()
-
Achso okay!
Aber wie füge ich es genau in den Quellcode ein?
-
gustlbert schrieb:
Achso okay!
Aber wie füge ich es genau in den Quellcode ein?BITTE!? Ausgeben, was weiß ich?
-
gustlbert schrieb:
Aber wie füge ich es genau in den Quellcode ein?
Möglichkeit 1) Mit der Maus markieren, was Hacker geschrieben hat. Das Ganze kopieren (Rechtsklick + Copy oder Strg+C). In den Editor/IDE deiner Wahl wechseln. Cursor an die Stelle setzen, wo du den Code gerne hättest. Einfügen (Rechtsklickt + Insert oder Strg+V). Ggf. Variablennamen anpassen.
Möglichkeit 2) Abtippen.
Stell bitte vernünftige Fragen, dann kriegst du auch vernünftige Antworten. Siehe Link in meiner Signatur...
-
Hacker schrieb:
Also so:
(vorname + nachname).length()vorname.lenght() + nachname.length()wäre günstiger, dann muss kein neuer temporärer String angelegt werden.
-
Ja vielen Dank!
Habs jetzt auch verstanden!