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

时间:2023-03-08 20:23:11
switch……case不能匹配字符串的方法 .xml

pre{
line-height:1;
color:#d1653c;
background-color:#000000;
font-size:16px;}.sysFunc{color:#566d68;font-style:italic;font-weight:bold;}
.selfFuc{color:#f3e191;}
.bool{color:#f6ac77;}
.condition{color:#ff00ff;font-weight:bold;}
.key{color:#c1018f;}
.var{color:#61afba;font-style:italic;}
.Digit{color:#008000;font-weight:bold;}
.includePre{color:#3c65d1;}
.operator {color:#65ec0f;font-weight:bold;}

思路:

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

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