条款3:大小写不敏感的字符串--之二(2)

2013-10-07 15:18:14 · 作者: · 浏览: 73

条款3:大小写不敏感的字符串--之二(2)

有两种方法可以解决这个问题。在ci_strings类中定义相应operator<<()和operator>>();或者,如果在程序的字符串内部不包含空字符,那么可以在调用operator<<( const char* )时使用".c_str()"。例如:

  1. cout << s.c_str() << endl;  

3.如果使用其他的运算符(例如,+, +=, =),并将string对象和ci_string对象作为参数,结果将会怎样?例如:
  1. string     a = "aaa";   
  2. ci_string b = "bbb";  
  3. string     c = a + b; 

同样,有两种方法来处理这个问题。在ci_string中定义operator+()函数,或者在调用operator+( const char* )时使用".c_str()",如下所示:
  1. string    c = a + b.c_str();