条款3:大小写不敏感的字符串--之二(2)
有两种方法可以解决这个问题。在ci_strings类中定义相应operator<<()和operator>>();或者,如果在程序的字符串内部不包含空字符,那么可以在调用operator<<( const char* )时使用".c_str()"。例如:
- cout << s.c_str() << endl;
3.如果使用其他的运算符(例如,+, +=, =),并将string对象和ci_string对象作为参数,结果将会怎样?例如:- string a = "aaa";
- ci_string b = "bbb";
- string c = a + b;
同样,有两种方法来处理这个问题。在ci_string中定义operator+()函数,或者在调用operator+( const char* )时使用".c_str()",如下所示:- string c = a + b.c_str();