C ++中区分大小写的字符串比较

时间:2010-08-10 10:21:39

标签: c++ string

任何人都可以让我知道字符串类的区分大小写的比较函数的确切c ++代码吗?

4 个答案:

答案 0 :(得分:5)

怎么样?

std::string str1, str2;
/* do stuff to str1 and str2 */
if (str1 == str2) { /* do something */ }

或者

if (str1.compare(str2) == 0) { /* the strings are the same */ }

答案 1 :(得分:4)

std::string str1("A new String");
std::string str2("a new STring");
if(str1.compare(str2) == 0)
    std::cout<<"Equal";     // str1("A new String") str2("A new String");
else 
    std::cout<<"unEqual";   //str1("A new String") str2("a new STring") 

compare()返回一个整数值而不是一个布尔值。返回值具有以下含义:0表示相等,小于零的值表示小于,而大于零的值表示大于

答案 2 :(得分:2)

==在C ++ AFAIK中进行字符串比较时重载(与Java不同,你必须使用myString.equals(..))

如果您想在比较时忽略大小写,只需将两个字符串转换为大写或小写,如下所示:Convert a String In C++ To Upper Case

答案 3 :(得分:1)

#include <iostream>
#include <string>
using namespace std;

int main ()
{
  string str1 ("green apple");
  string str2 ("red apple");

  if (str1.compare(str2) != 0)
    cout << str1 << " is not " << str2 << "\n";

  if (str1.compare(6,5,"apple") == 0)
    cout << "still, " << str1 << " is an apple\n";

  if (str2.compare(str2.size()-5,5,"apple") == 0)
    cout << "and " << str2 << " is also an apple\n";

  if (str1.compare(6,5,str2,4,5) == 0)
    cout << "therefore, both are apples\n";

  return 0;
}

我是从http://www.cplusplus.com/reference/string/string/compare/

得到的

希望谷歌工作!!

但是使用==运算符之类的 s1 == s2也会运作良好