C++ :: Aufgabe #269

1 Lösung Lösung öffentlich

Namen in Initialen umwandeln

Anfänger - C++ von JKooP - 29.03.2020 um 15:07 Uhr
Schreibe ein Programm, mit dem es möglich ist, einen beliebig langen Namen (Vorname(n), Nachname(n), Namenszusätze) als Initialen darzustellen.
Ebenfalls sollen durch Bindestrich getrennte Namen einbezogen werden.
Optional soll die Ausgabe sowohl mit Bindestrich als auch in Großbuchstaben erfolgen.

Beispiel:

Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl-Freiherr von und zu Guttenberg

--> KTMNJJPFJSBFvuzG

Optional:

--> K-TMNJJPFJSB-FvuzG
--> KTMNJJPFJSBFVUZG oder K-TMNJJPFJSB-FVUZG

Viel Spaß

Lösungen:

vote_ok
von JoeWhizer (120 Punkte) - 19.07.2020 um 10:28 Uhr
Quellcode ausblenden C-Code
#include <iostream>
#include <vector>

void split_names(std::string name, std::vector<std::string> &names)
{
    std::string single_name = ""; 
    for (auto x : name) { 
        if (x == ' ' || x == '-') { 
            names.push_back(single_name);
            single_name = "";
        } else { 
            single_name = single_name + x; 
        }
    }
    names.push_back(single_name);
}

std::string get_initials(std::vector<std::string> &names)
{
    std::string initials;
    for (int i = 0; i < names.size(); i++) { 
        initials = initials + names[i][0];
    }
    return initials;
}

int main()
{
    std::string name;
    std::vector<std::string> names;

    std::cout << "Enter your name: ";
    std::getline(std::cin, name);

    split_names(name, names);

    std::cout << "Your initials: " << get_initials(names) << std::endl;
}