这还不简单,将查找和被查找的文本全部转换为大写或者小写即可。至于函数名,自己查找下,是ToUpper ToLower 和 IndexOf 么?

解决方案 »

  1.   

    组合一下
    void ReplaceNoCase(CString &src, LPCTSTR szFind, LPCTSTR szReplace)
    {
      CString tmp = src;
      tmp.MakeUpper();
      CString find = szFind;
      find.MakeUpper();
      int iFind = tmp.Find(find);
      if(iFind != -1) 
      {
        src.Delete(iFind, find.GetLength());
        src.Insert(iFind, szReplace);
      }
    }
      

  2.   


    谢谢回复,但是,没有被替换的部分要保持原来的大小写,替换串必须保持为调用时的大小写,
    比如 aBc 替换为MPAds
      

  3.   

    如果你用stl::string 的话可以这样
    regex pattern("abc",regex::icase);
    string str="Abc123";
    string str1=regex_replace(str,pattern,"");
    CString 和stl::string互转也是相当简单的
      

  4.   


    谢谢回复,但是,没有被替换的部分要保持原来的大小写,替换串必须保持为调用时的大小写,
    比如 aBc 替换为MPAds原来的字串的大小写并没有变啊 
      

  5.   


    谢谢回复,但是,没有被替换的部分要保持原来的大小写,替换串必须保持为调用时的大小写,
    比如 aBc 替换为MPAds原来的字串的大小写并没有变啊 
    如果你不想用stl::regex ,你可以这样按以上代码,记录find的位置,替换他
      

  6.   

    你把源的字符串和需要查找的字符串统一成 大写or小写 在去find不就哦了。