任何人都可以让我知道字符串类的区分大小写的比较函数的确切c ++代码吗?
答案 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也会运作良好