社区
C语言
帖子详情
enum这类问题怎么编写。
xiaoke0753
2003-03-21 04:53:29
设有如下枚举类型:enum DaysOfWeek{ sun, mon, tues, wed, thurs, fri, sat } ;
编写函数
void GetDay( DaysOfWeek &day ) ;
以字符串方式从键盘读入某天的名称并将相应的枚举值赋给这一天,再编写函数
void PutDay( DaysOfWeek day )
将枚举值输出到屏幕,设计一个主程序测试这两个函数。
...全文
21
6
打赏
收藏
enum这类问题怎么编写。
设有如下枚举类型:enum DaysOfWeek{ sun, mon, tues, wed, thurs, fri, sat } ; 编写函数 void GetDay( DaysOfWeek &day ) ; 以字符串方式从键盘读入某天的名称并将相应的枚举值赋给这一天,再编写函数 void PutDay( DaysOfWeek day ) 将枚举值输出到屏幕,设计一个主程序测试这两个函数。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mr_oydy
2003-03-22
打赏
举报
回复
#include <string>
#include <iostream>
using namespace std;
#define FILL_IN(n) {#n,n}
enum DaysOfWeek{ sun, mon, tues, wed, thurs, fri, sat, none};
struct elem{
char str[6];
DaysOfWeek DOfW;
bool operator==(DaysOfWeek& rhs){
return DOfW==rhs;
}
bool operator==(const char* rhs){
return !strcmp(str, rhs);
}
};
class change{
elem e_;
public:
template<class T>
change(T day){
elem e[7] = {FILL_IN(sun),
FILL_IN(mon),
FILL_IN(tues),
FILL_IN(wed),
FILL_IN(thurs),
FILL_IN(fri),
FILL_IN(sat)};
for(int i=0; i<7; i++){
if(e[i]==day){
e_ = e[i];
break;
}else{
strcpy(e_.str,"none");
e_.DOfW = none;
}
}
}
operator const char*(){return e_.str;}
operator DaysOfWeek(){return e_.DOfW;}
};
void main(){
DaysOfWeek d = change("fri");
string str = change(sat);
cout << d << endl << str << endl;
}
jamesfangjing
2003-03-22
打赏
举报
回复
我记得c++中,枚举类型会自动赋值,每个元素会被赋给一个int型的值,具体是从0开始还是1开始,我就记不清楚了!!!
这样一来,是不是就可以避免比较字符串呢?
guoxiny
2003-03-22
打赏
举报
回复
对switch不能这样用。switch(param)要是数值型;在C语言中看到的这种用法:
switch(ch)
{
case 'a':....break;
}
在C中a的acsii码是数值的,大家不要被此迷惑了。
枚举的话,则可以这样
DaysOfWeek dw;
switch(dw)
{
case sun:...;break;
}
因为枚举值是数值类型的。
yzb1000
2003-03-22
打赏
举报
回复
学习
dsangvei
2003-03-21
打赏
举报
回复
在C/C++中string还不能直接switch...case...
你要用strcmp来比较输入的是否与你设定的一样。当然,还要注意大小写。
bugfree
2003-03-21
打赏
举报
回复
string readday;
cin>>readday;
switch(readday)
{
case "sun":
GetDay(0);
.....
}
C++零基础入门(C++11/C++14)
课程共分为三篇: 1) 基础篇: 这部分主要学习零散的基础语法,比如变量、常量、运算符、数据类型、
enum
、union、 数组、动态数组、字符串、条件结构、循环结构、函数、指针(非常重要)、引用(非常重要, 包括C++11...
Enum
(枚举类)
一、什么情况下使用枚举类? 有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便?二、为什么不用静态常量来替代枚举类呢? public static final int SEASON_SPRING = 1; public static ...
枚举类(
enum
)的
编写
。仅记录
目前用到过的,关于枚举类的
编写
。有两种。见链接的第一种和第三种。 参考链接:Java 枚举(
enum
) 详解7种常见的用法
Java-
Enum
枚举类
Java-
Enum
枚举类 文章目录Java-
Enum
枚举类前言一、枚举的实现原理二、使用反射查看枚举类枚举的高级使用 前言 介绍
enum
的全称为
enum
eration, 是 JDK 1.5...而java.lang.
Enum
类实现了java.lang.Serializable和java
Java枚举类型(
enum
)详解
文章目录理解枚举类型枚举的定义枚举实现原理枚举的常见方法
Enum
抽象类常见方法编译器生成的Values方法与ValueOf方法枚举与Class对象枚举的进阶用法向
enum
类添加方法与自定义构造函数关于覆盖
enum
类方法
enum
类中定义...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章