字符串比较运算符

时间:2015-05-22 23:47:39

标签: c++ string

他们是如何运作的?我很困惑。人们说你可以按字典顺序比较字符串,但事实并非如此。运行此程序,您会发现它有时只能运行。

网站上有一篇帖子说如果它是一个字符串文字,它将无法正常工作,但即使使用声明的字符串,就像我的程序中的这些字符串一样,它会给我错误信息。是什么赋予了?我可以或不可以将字符串与“>”进行比较“<”经营者?

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

void stringCompare(string c, string d){
    if(c < d){
    cout << "It's less than!" <<endl;
    }
    else{
    cout << "It's Greater then!" <<endl;
    }


}

int main(){
    while(true){
    string c,d;
    cout << "Enter First Number "<< endl;
    cin >> c;
    cout << "Enter Second Number" <<endl;
    cin >> d;
    stringCompare(c,d);
    }

}

输入几个值的输出:

a,B - &gt;'a'小于

A,b - &gt; 'A'小于

c,D - &gt; 'c'大于

????

1 个答案:

答案 0 :(得分:2)

问题是<的运算符重载根据字典大小写敏感的比较而工作。

您没有收到随机错误,事实是a!= A

要进行不区分大小写的比较,首先应将两个字符串转换为小写,例如:

string lowercase;
lowercase.resize(text.size());
transform(text.begin(), text.end(), lowercase.begin(), ::tolower);

然后比较它们。

相关问题