switch……case不能匹配字符串的方法
思路: 将字符串添加到map容器中 然后比较字符串名 获得该字符串所对应的索引值 在Switch中使用这个索引值判断 在stdafx.h 添加头文件 #include //注 在CPP中直接添加头文件时 出现了错误 不知道什么原因造成的CString fontNam
·
思路:
将字符串添加到map容器中
然后比较字符串名 获得该字符串所对应的索引值
在Switch中使用这个索引值判断
在stdafx.h 添加头文件
#include <map> //注 在CPP中直接添加头文件时 出现了错误 不知道什么原因造成的
CString fontNameStr;
std::map<int,CString> nameMap;
nameMap.insert(std::make_pair(1,L"小篆"));
nameMap.insert(std::make_pair(2,L"宋体"));
nameMap.insert(std::make_pair(3,L"楷体"));
fontNameStr=L"宋体";
int nIndex=0;
std::map<int,CString>::iterator iter;
for(iter=nameMap.begin();iter!=nameMap.end();iter++)
{
if (iter->second.CompareNoCase(L"宋体")==0)
{
nIndex=iter->first;
break;
}
}
switch(nIndex)
{
case 1:
break;
default:
break;
}
不过用容器做 有点画蛇添足 , 还不如使用下面方式简单明了
CString fontNameStr;
if(fontNameStr.CompareNoCase(L"小篆")==0) nIndex=1;
if(fontNameStr.CompareNoCase(L"宋体")==0) nIndex=2;
if(fontNameStr.CompareNoCase(L"楷体")==0) nIndex=3;
switch(nIndex)
{
case 1:
break;
case 2:
break;
case 3:
break;
default:
break;
}
参考资料:
http://blog.csdn.net/litoyao/article/details/5591763
更多推荐
已为社区贡献2条内容
所有评论(0)