Задача ООП C++

paco92

Registered
здравейте започнахме да учим ООП на C++ и имам за домашно една задача все още немога да ги по разбера нещата затова ако може малко помощ със задачата
Задача: От клавиатурата се въвежда името на автор на книга,като низ във формат Име Презиме фамилия.Да се напише програма която извежда името в реда Фамилия Име Презиме.
Благодаря Предварително
 
Код:
#include <iostream>

using namespace std;


struct Person{
    string fName;
    string sName;
    string lName;
};

int main()
{
    Person person;

    cout<<"Enter your first name"<<endl;
    getline(cin,person.fName);
     cout<<"Enter your second name"<<endl;
    getline(cin,person.sName);
     cout<<"Enter your last name"<<endl;
    getline(cin,person.lName);

    cout<<"My name is :"<<person.lName<<"\t"<<person.fName<<"\t"<<person.sName;
    return 0;
}
 
djman каза:
^ това е по-скоро C...
Това си е точно C++, но не е OOP.

Аз и не виждам да има изискване да се създаде class.

В решението горе, трябва да се include-не и string библиотеката.
 
благодаря за решението на задачата но мисля че трябва да разделя низа на няколко низа да речем string s на с1 ,с2,с3 и оттам с3 да се слапне с с1 и с1 да се слапне с2
 
Ако имаш въпроси питай

Код:
#include <iostream>
#include <string>
using namespace std;

string AuthorLastNameFirst_VariantOne(string authorName);
void AuthorLastNameFirst_VariantTwo(string authorName);

string fmlName="",fName="",mName="",lName="";

int main()
{
    cin>>fName>>mName>>lName;
    cout<<lName + " " + fName + " " + mName<<endl;

    fmlName=fName + " " + mName + " " + lName;
    cout<<"\nVariantOne"<<endl;
    cout<<AuthorLastNameFirst_VariantOne(fmlName)<<endl;

    cout<<"\nVariantTwo"<<endl;
    AuthorLastNameFirst_VariantTwo(fmlName);
    cout<<endl;

    return 0;
}

string AuthorLastNameFirst_VariantOne(string authorName)
{
    fName = authorName.substr(0,authorName.find(" "));
    authorName.erase(0,fName.length()+1);
    mName = authorName.substr(0,authorName.find(" "));
    authorName.erase(0,mName.length()+1);
    lName = authorName;
    authorName = lName + " " + fName + " " + mName;

    return authorName;
}

void AuthorLastNameFirst_VariantTwo(string authorName)
{
    lName=authorName.substr(authorName.find_last_of(" ")+1);
    authorName=lName + " " + authorName.substr(0,authorName.find_last_of(" "));
    cout<<authorName;
}
 

Back
Горе