枚举类型的星期几

问题描述 投票:0回答:1

当用户发送“星期一”时,我需要创建程序。程序发送“ 1”。“星期二” = 2 e.t.c

我的代码:

#include <iostream>
#include <string>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;


enum DAY {monday = 1, Tuesday, Wednesday, cThursday, Thursday};

int main(int argc, char** argv) {
    string x;
    cout << "Day: " << endl;
    cin >> x;
    DAY neww;
    neww = x;
    cout << neww << endl;
    return 0;
}
c++
1个回答
1
投票

您的代码的问题是,当您尝试传递字符串时,枚举只是数字,请尝试以下操作:

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

enum DAY {
    Monday = 1,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday,
    INCORRECTDATEFORMAT
};

DAY getDay(string& d)
{
    std::transform(d.begin(), d.end(), d.begin(), ::tolower);
    if(d == "monday")
        return DAY::Monday;
    else if(d == "tuesday")
        return DAY::Tuesday;
    else if(d == "wednesday")
        return DAY::Wednesday;
    else if(d == "thursday")
        return DAY::Thursday;
    else if(d == "friday")
        return DAY::Friday;
    else if(d == "saturday")
        return DAY::Saturday;
    else if(d == "sunday")
        return DAY::Sunday;
    else
        return DAY::INCORRECTDATEFORMAT;
}
int main()
{
    string d;
    cout << "Day : ";
    cin >> d;
    cout << getDay(d) << endl;
}
© www.soinside.com 2019 - 2024. All rights reserved.