CHAPTER2-26.cpp
上传用户:fjc899
上传日期:2007-07-03
资源大小:187k
文件大小:1k
源码类别:

STL

开发平台:

C/C++

  1. //文件名:CHAPTER2-26.cpp
  2. #include <string> 
  3. #include <iostream> 
  4. #include <algorithm> 
  5. using namespace std;
  6. bool nocase_compare (char c1, char c2) 
  7. { return toupper(c1) == toupper(c2); } 
  8. int main() 
  9. {
  10. string s1("This is a string"); 
  11. string s2("STRING");
  12. //compare case insensitive
  13. if (s1.size() == s2.size() &&equal (s1.begin(),s1.end(),s2.begin(),nocase_compare)) 
  14. { cout << "the strings are equal" << endl;  } 
  15. else 
  16. { cout << "the strings are not equal" << endl;  }
  17. //search case insensitive
  18. string::iterator pos; 
  19. pos = search (s1.begin() ,s1.end(), //source string in which to search
  20. s2.begin(), s2.end(), //substring to search
  21. nocase_compare); //comparison criterion
  22. if (pos == s1.end()) 
  23. { cout << "s2 is not a substring of s1" << endl;  } 
  24. else 
  25. { cout << ' " ' << s2 << "" is a substring of "" << s1 << "" (at index " << pos - s1.begin() << ")" << endl;  } 
  26. }