#include <cstring>
#include <string>
#include <iostream>
using namespace std;
int main() {
string stringStr1 = "42";
string stringStr2 = "42";
string stringStr3 = "213";
cout << "stringStr1: " << stringStr1 << " " << "&stringStr1 :" << &stringStr1 << endl;
cout << "stringStr2: " << stringStr2 << " " << "&stringStr2 :" << &stringStr2 << endl;
cout << "stringStr3: " << stringStr3 << " " << "&stringStr3 :" << &stringStr3 << endl;
bool stringStr1_stringStr2 = stringStr1 == stringStr2;
cout << "stringStr1 == stringStr2: " << stringStr1_stringStr2 << endl;
bool stringStr1_stringStr3 = stringStr1 > stringStr3;
cout << "stringStr1 > stringStr3: " << stringStr1_stringStr3 << endl;
bool stringStr1_stringStr3_compare = stringStr1.compare(stringStr3);
cout<<"stringStr1.compare(stringStr3): "<<stringStr1.compare(stringStr3)<<endl;
cout<<"------------------------------------------------------------------"<<endl;
char* charStr1 = "42";
char* charStr2 = "42";
char* charStr3 = "213";
cout << "charStr1: " << charStr1 << " " << "(void*)charStr1 :" << (void*)charStr1 << endl;
cout << "charStr2: " << charStr2 << " " << "(void*)charStr2 :" << (void*)charStr2 << endl;
cout << "charStr3: " << charStr3 << " " << "(void*)charStr3 :" << (void*)charStr3 << endl;
cout << "charStr1: " << charStr1 << " " << "&charStr1 :" << &charStr1 << endl;
cout << "charStr2: " << charStr2 << " " << "&charStr2 :" << &charStr2 << endl;
cout << "charStr3: " << charStr3 << " " << "&charStr3 :" << &charStr3 << endl;
cout << "charStr1: " << charStr1 << " " << "*charStr1 :" << *charStr1 << endl;
cout << "charStr2: " << charStr2 << " " << "*charStr2 :" << *charStr2 << endl;
cout << "charStr3: " << charStr3 << " " << "*charStr3 :" << *charStr3 << endl;
bool charStr1_charStr2 = charStr1 == charStr2;
cout << "charStr1 == charStr2: " << charStr1_charStr2 << endl;
bool charStr2_charStr3 = *charStr2 == *charStr3;
cout << "*charStr2 == *charStr3: " << charStr2_charStr3 << endl;
bool charStr1_charStr3 = charStr1 > charStr3;
cout << "charStr1 > charStr3: " << charStr1_charStr3 << endl;
bool charStr1_charStr3_strcmp = strcmp(charStr1,charStr3);
cout << "strcmp(charStr1,charStr3): " << charStr1_charStr3_strcmp << endl;
int a = "42" > "213";
int b = strcmp("42" , "213");
cout<<"'42' > '213': "<<a<<endl;
cout<<"strcmp(\"42\" , \"213\"): "<<b<<endl;
return 0;
}
- string对象之间直接用>或<进行比较是按照字符顺序逐个比较;
- char*类型的字符串之间直接用>或<比较的话,比的只是地址,用strcmp()方法的话也是诸逐个字符进行比较。