c++字符串转换为枚举类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++字符串转换为枚举类型相关的知识,希望对你有一定的参考价值。
#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()函数 越简单越好,效率越高越好,求助!!!
#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 // 为输出内容 参考技术A 枚举类型如下:
public enum ConcertCode
BEIJING,
SHANGHAI,
GUANGZHOU
如果要将比如“beijing”字符串转换为ConcertCode.BEIJING的话,可以通过如下方法:
ConcertCode c = (ConcertCode)Enum.Parse(typeof(ConcertCode), 字符串的变量, true)
C++枚举变量与switch
枚举类型和变量如何定义,下篇博客讲得十分详细:
https://blog.csdn.net/bruce_0712/article/details/54984371
有几个需要注意的点:
(1)在不进行强制类型转换的前提下,枚举量只能由枚举类型赋值。但是,可以把枚举量赋给其它类型(枚举量被强制转换为整型)。
(2)枚举量没有赋初值的话,会自动从0开始,按从小到大的顺序,以整数的形式初始化。
即
enum enumType Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday;
Monday~Sunday 会默认为0~6。将其中某个赋初值的话,下一个枚举量也会自动向上递增。
(3)枚举类型常和switch分支搭配使用。
自己简单练习了一下。用户输入0-5的数字来选择工作日,输出当天的安排。
#include<iostream> using namespace std; typedef enum workday Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, ; void chooseday(workday tempday); int main() int today; cin >> today; chooseday(workday(today)); system("pause"); void chooseday(workday tempday) switch (tempday) case Sunday: cout << "Work,and go shopping." << endl; break; case Monday: cout << "Work,and read books." << endl; break; case Tuesday: cout << "Travel." << endl; break; case Thursday: cout << "Work,and visit friends." << endl; break; case Friday: cout << "Have a party." << endl; break; default: cout << "Wrong input!" << endl; break;
以上是关于c++字符串转换为枚举类型的主要内容,如果未能解决你的问题,请参考以下文章
java如何用方法toString()将枚举类型转换为字符串类型
C#如何将枚举类(enum)型转换成字符(string)类型