C++中enum与字符串或CString互相转换的方法
来源:互联网 发布:大数据经济学 编辑:程序博客网 时间:2024/06/02 06:36
C++中没有专门为enum与字符串或CString互相转换的直接方法,但是工作中会常遇到相互转换的场景。下面介绍一种自己实现的方法,首先得定义一个enum类型,同时,定义一个与之对应的字符串类型,然后,可以相互转换了。
enum E_ANIMAL { E_ANIMAL_EAGLE = 0,E_ANIMAL_MAGPIE,E_ANIMAL_PIG,E_ANIMAL_CARP,E_ANIMAL_END};const CString ANIMAL[] = { "E_ANIMAL_EAGLE","E_ANIMAL_MAGPIE","E_ANIMAL_PIG","E_ANIMAL_CARP", "E_ANIMAL_END"};
bool fnConverCStringToEnum(const CString csParam,E_ANIMAL &eName){CString csAnimalName;int iCount = 0;eName = E_ANIMAL_END;csAnimalName = csParam;iCount = sizeof(ANIMAL) / sizeof(ANIMAL[0]);for(int i=0;i<iCount;i++){ if(0 == csAnimalName.CompareNoCase(ANIMAL[i])){eName = E_ANIMAL(i);break;}else{continue;}if(E_ANIMAL_END == eName){return false;}}cout << "eName is: " << eName << endl;return true;}bool fnConverEnumToCString(const E_ANIMAL eParam,CString &csName){E_ANIMAL eTemp = E_ANIMAL_END;int idx = 0;if(eParam > E_ANIMAL_END){return false;}eTemp = eParam;idx = static_cast<enum>(eTemp);csName = ANIMAL[idx];cout << "csName is: " << csName.GetBuffer(0) << endl;return true;}int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]){int nRetCode = 0;// initialize MFC and print and error on failureif (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)){// TODO: change error code to suit your needscerr << _T("Fatal Error: MFC initialization failed") << endl;nRetCode = 1;}else{// TODO: code your application's behavior here.CString csAnimalName;E_ANIMAL eAnimalName; if(!fnConverEnumToCString(E_ANIMAL_CARP,csAnimalName)){return false;}if(!fnConverCStringToEnum("E_ANIMAL_CARP",eAnimalName)){return false;}cout << "csAnimalName is: " << csAnimalName.GetBuffer(0) << endl;cout << "eAnimalName is: " << eAnimalName << endl;}return nRetCode;}
阅读全文
0 0
- C++中enum与字符串或CString互相转换的方法
- Unicode字符串与CString字符串之间的互相转换
- VS2010 CString与char互相转换的方法
- VC++中CString与int互相转换
- CString 与 int的互相转换
- CString与char * ,string的互相转换
- objective-c与c字符串互相转换
- C#中Enum,Int,String的互相转换 枚举转换
- C#实现实体类与字符串互相转换的方法
- C#实现实体类与字符串互相转换的方法
- PythonNewHere -- 字符串与字典类型互相转换的方法
- C#实现实体类与字符串互相转换的方法
- JavaScript中数组和字符串的方法以及互相转换
- JavaScript中数组和字符串的方法以及互相转换
- Objective-C 字符串与数值互相转换
- Objective-C 字符串与数值互相转换
- Objective-C -- 字符串与数字互相转换
- C字符串 与 uint32类型互相转换
- 异常一般形式
- swipe.js插件相关用法
- 2.神经网络的监督学习
- ubuntu 16.04LTS 下Code::Blocks 16.01 安装
- 第6章gp_toolkit管理架构_gp_bloat_diag
- C++中enum与字符串或CString互相转换的方法
- java.lang.NoSuchFieldException: resourceEntries 异常解决
- Leetcode 718 Maximum Length of Repeated Subarray
- (七)windows上的git使用SSH连接
- 数据结构-图-十字链表的构造(1)
- JAVA环境变量配置
- A轮、B轮、C轮融资、VC、PE、IPO概念解析
- PAT (Basic Level) Practise (中文)1040. 有几个PAT(25)
- 请求转发和重定向