首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >枚举类型星期几

问枚举类型星期几
EN

Stack Overflow用户
提问于 2020-04-06 01:13:32
回答 1查看 199关注 0票数 0

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

我的代码:

代码语言:javascript
复制
#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;
}
EN

回答 1

Stack Overflow用户

发布于 2020-04-06 01:34:54

你的代码的问题是,当你试图传递一个字符串时,枚举只是一个数字,试试这个:

代码语言:javascript
复制
#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;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61046407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档