stringex.h
上传用户:tt_chan
上传日期:2009-12-03
资源大小:4523k
文件大小:1k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. #ifndef __ORZ_STRING__
  2. #define __ORZ_STRING__
  3. #include <string.h>
  4. #include <ctype.h>
  5. /*
  6. string support class (binary string)
  7. */
  8. class bstr
  9. {
  10. public:
  11. char *ptr;
  12. int  size;
  13. public:
  14. bstr();
  15. bstr( bstr &str );
  16. bstr( char *str );
  17. virtual ~bstr();
  18. bool alloc ( int len );
  19. bool expand( int len );
  20. bool assign( char *str, int len );
  21. bool assign( char *str );
  22. void cleanup();
  23. bool isassign();
  24. int  length();
  25. operator char * () { return ptr; }
  26. operator const char * const () { return (const char *) ptr; }
  27. char * operator =  ( char *str );
  28. char * operator =  ( bstr &str );
  29. char * operator =  ( int  num  );
  30. bool   operator == ( char *str );
  31. bool   operator != ( char *str );
  32. bstr & operator += ( char *str );
  33. bstr & operator += ( int  num  );
  34. friend bstr operator + ( bstr &str1, bstr &str2 );
  35. friend bstr operator + ( bstr &str1, char *str2 );
  36. friend bstr operator + ( char *str1, bstr &str2 );
  37. };
  38. /*
  39. C runtime function plus++
  40. */
  41. char * _memstr( char *buf, int buf_len, char *str );
  42. char * _memistr( char *buf, int buf_len, char *str );
  43. /*
  44. string manipulation
  45. */
  46. bool _isspace( char c );
  47. int  _ltrim( char *str );
  48. int  _rtrim( char *str );
  49. int  _trim( char *str );
  50. int  _linecopy( char *str, char *buf );
  51. int  _linecopy( bstr *str, char *buf );
  52. bool _pickstring( char *str, char sep, int index, char *buf, int buf_len );
  53. #endif