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

2024-12-31 15:24:53
推荐回答(2个)
回答1:

你是想从屏幕里输入一个字符,然后将这个字符转换为对应的枚举吧。如:从屏幕上输入'a',则转换为set枚举中对应的a,如果是这个意思,我已经帮你实现了,源代码如下(见注释,不明白的地方可以hi我):

#include
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'<case b:
cout<<'b'<case c:
cout<<'c'<case d:
cout<<'d'<case e:
cout<<'e'<case f:
cout<<'f'<// case g:... 你自己去添加这些代码吧
// case h:...
}
}

测试结果:
please input a char:
a 回车
a // 为输出内容

回答2:

枚举类型如下:
public enum ConcertCode
{
BEIJING,
SHANGHAI,
GUANGZHOU
如果要将比如“beijing”字符串转换为ConcertCode.BEIJING的话,可以通过如下方法:
ConcertCode c = (ConcertCode)Enum.Parse(typeof(ConcertCode), 字符串的变量, true)