C++不区分大小写比较string类似CString.compareNoCase

简介:

使用transform();全转化为小写,然后对比string

复制代码
#include < string>
#include <algorithm>

using  namespace std;

namespace BaseFunc
{
     //  string转小写
     string strToLower( const  string &str)
    {
         string strTmp = str;
        transform(strTmp.begin(),strTmp.end(),strTmp.begin(),tolower);
         return strTmp;
    }

     //  string.compareNoCase
     bool compareNoCase( const  string &strA, const  string &strB)
    {
         string str1 = strToLower(strA);
         string str2 = strToLower(strB);
         return (str1 == str2);
    }

     //  另一法
     bool compare( const  string& x,  const  string& y)
    {
         string::const_iterator p = x.begin();
         string::const_iterator q = y.begin();
         //  遍历对比每个字符
         while (p != x.end() && q != y.end() && toupper(*p) == toupper(*q))
        {
            ++p;
            ++q;
        }
         if (p == x.end())  //  如果x到结尾,y也到结尾则相等
        {
             return (q == y.end());
        }
         if (q == y.end())  //  如果x未到结尾,y到结尾返回false
        {
             return  false;
        }
         //  如果x,y都没有到结尾,说明有不相同的字符,返回false
         return  false;
         // return (toupper(*p) < toupper(*q));
    }
}

void main()
{
     string strA =  " abc ";
     string strB =  " AdC ";
     bool b = BaseFunc::compareNoCase( strA, strB );
    b = BaseFunc::compare( strA, strB );
}
复制代码

string与CString互相转换:

string str;
CString s;
s = str.c_str();
str = s;

url:http://greatverve.cnblogs.com/archive/2012/12/08/string-compareNoCase.html




    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/greatverve/archive/2012/12/08/string-compareNoCase.html,如需转载请自行联系原作者



相关文章
|
6天前
|
算法 C++ 容器
【C++】string模拟实现
【C++】string模拟实现
11 1
|
6天前
|
C语言 C++
【C++】string类(常用接口)
【C++】string类(常用接口)
15 1
|
3天前
|
编译器 C++
【C++】继续学习 string类 吧
首先不得不说的是由于历史原因,string的接口多达130多个,简直冗杂… 所以学习过程中,我们只需要选取常用的,好用的来进行使用即可(有种垃圾堆里翻美食的感觉)
7 1
|
3天前
|
算法 安全 程序员
【C++】STL学习之旅——初识STL,认识string类
现在我正式开始学习STL,这让我期待好久了,一想到不用手撕链表,手搓堆栈,心里非常爽
10 0
|
3天前
|
存储 安全 测试技术
【C++】string学习 — 手搓string类项目
C++ 的 string 类是 C++ 标准库中提供的一个用于处理字符串的类。它在 C++ 的历史中扮演了重要的角色,为字符串处理提供了更加方便、高效的方法。
13 0
【C++】string学习 — 手搓string类项目
|
4天前
|
存储 C++ 容器
【C++从练气到飞升】09---string语法指南(二)
【C++从练气到飞升】09---string语法指南(二)
|
4天前
|
存储 Linux C语言
【C++从练气到飞升】09---string语法指南(一)
【C++从练气到飞升】09---string语法指南(一)
|
6天前
|
C++
【C++】string类(介绍、常用接口)
【C++】string类(介绍、常用接口)
17 2
|
17天前
|
存储 编译器 C语言
C++字符串大小写之for语句
C++字符串大小写之for语句
17 0
|
19天前
|
算法 Linux C语言
【C++进阶(一)】STL大法以及string的使用
【C++进阶(一)】STL大法以及string的使用