switch……case不能匹配字符串的方法 .xml

思路:

        将字符串添加到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;  
      
    }  

本文使用 书画小说软件 发布,内容与软件无关,书画小说软件 更惬意的读、更舒心的写、更轻松的发布。

 

你可能感兴趣的:(switch)