c++字符串转换为枚举类型

#include<iostream.h>enumset{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z};void... #include <iostream.h>
enum set {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z};

void string2enum(char* string , enum set em)
{

}
void main()
{
char str[256];
set temp;
cin>>str;
string2enum(str,temp);
switch(w)
{
case a:
cout<<'a'<<endl;break;
case b:
cout<<'b'<<endl;break;
case c:
cout<<'c'<<endl;break;
case d:
cout<<'d'<<endl;break;
case e:
cout<<'e'<<endl;break;
case f:
cout<<'f'<<endl;break;
}

}
如何实现string2enum()函数 越简单越好,效率越高越好,求助!!!
展开
 我来答
confuciuskg
推荐于2016-10-18 · TA获得超过1285个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:273万
展开全部
你是想从屏幕里输入一个字符,然后将这个字符转换为对应的枚举吧。如:从屏幕上输入'a',则转换为set枚举中对应的a,如果是这个意思,我已经帮你实现了,源代码如下(见注释,不明白的地方可以hi我):

#include <iostream>
using namespace std;
enum set {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z};
void char2enum(char ch , set &em){
// 实现字符转枚举,其中参数em为set的引用类型,来把ch转换的结果传出
char start = 'a';
em = (set)((int)ch - (int)start);
}
void main()
{
char str;
set temp;
cout << "please input a char: ";
cin>>str; // 获取从屏幕中输入的字符
char2enum(str, temp); // 将字符str转换为枚举temp
switch(temp) // 根据枚举的值,进行输出
{
case a:
cout<<'a'<<endl;break;
case b:
cout<<'b'<<endl;break;
case c:
cout<<'c'<<endl;break;
case d:
cout<<'d'<<endl;break;
case e:
cout<<'e'<<endl;break;
case f:
cout<<'f'<<endl;break;
// case g:... 你自己去添加这些代码吧
// case h:...
}
}

测试结果:
please input a char:
a 回车
a // 为输出内容
百度网友96ffcf7
推荐于2016-06-25 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118717
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
枚举类型如下:
public enum ConcertCode
{
BEIJING,
SHANGHAI,
GUANGZHOU
如果要将比如“beijing”字符串转换为ConcertCode.BEIJING的话,可以通过如下方法:
ConcertCode c = (ConcertCode)Enum.Parse(typeof(ConcertCode), 字符串的变量, true)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式