C++ :: Aufgabe #269
                         
        1 Lösung
         
        
        
      
                
        
    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ß
                                         
         
         
        
          
          
        
           
        
        
        
        
        
        
        
        
        
      
         
     
   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:
#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;
}