他们是如何运作的?我很困惑。人们说你可以按字典顺序比较字符串,但事实并非如此。运行此程序,您会发现它有时只能运行。
网站上有一篇帖子说如果它是一个字符串文字,它将无法正常工作,但即使使用声明的字符串,就像我的程序中的这些字符串一样,它会给我错误信息。是什么赋予了?我可以或不可以将字符串与“>”进行比较“<”经营者?
#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'大于
????
答案 0 :(得分:2)
问题是<
的运算符重载根据字典大小写敏感的比较而工作。
您没有收到随机错误,事实是a
!= A
。
要进行不区分大小写的比较,首先应将两个字符串转换为小写,例如:
string lowercase;
lowercase.resize(text.size());
transform(text.begin(), text.end(), lowercase.begin(), ::tolower);
然后比较它们。