00001 #ifndef __si_std_string_h__ff6c1067_65b8_4fe7_8704_86e99cb0d45b
00002 #define __si_std_string_h__ff6c1067_65b8_4fe7_8704_86e99cb0d45b
00003
00008 #include <si_sys/defs.h>
00009
00010
00022 typedef struct sc_string {
00023 TCHAR* str_;
00024 s_uint32 capacity_;
00025 s_uint32 length_;
00026 } sc_string;
00027
00028 sc_status sc_string_construct(sc_string* pstr);
00034 sc_status sc_string_constructFrom(sc_string* pstr, const TCHAR* src);
00042 sc_status sc_string_destruct(sc_string* pstr);
00046 sc_status sc_string_assign(sc_string* pstr, const TCHAR* src);
00052 sc_status sc_string_assignChars(sc_string* pstr, const TCHAR* src,
00053 s_uint32 nchars);
00064 sc_status sc_string_append(sc_string* pstr, const TCHAR* src);
00071 sc_status sc_string_appendChars(sc_string* pstr, const TCHAR* src,
00072 s_uint32 nchars);
00081 sc_status sc_string_prepend(sc_string* pstr, const TCHAR* src);
00088 sc_status sc_string_prependChars(sc_string* pstr, const TCHAR* src,
00089 s_uint32 nchars);
00099 sc_status sc_string_detach(sc_string* pstr, TCHAR** ppdst);
00110 sc_status sc_string_toLower(sc_string* pstr);
00117 sc_status sc_string_trimRight(sc_string* pstr);
00127 sc_status sc_string_free(sc_string* pstr);
00139 sc_status sc_string_clear(sc_string* pstr);
00148 sc_status sc_string_setMinCapacity(sc_string* pstr, s_uint32 numChars);
00160 sc_status sc_string_allocCopy(TCHAR** dst, const TCHAR* src);
00166 int iswhitespace(TCHAR c);
00173 const TCHAR* str_advw(const TCHAR* psrc);
00180 const TCHAR* str_advq(const TCHAR* psrc);
00187 const TCHAR* str_advl(const TCHAR* psrc);
00195 int _stricmp(const char* s1, const char* s2);
00204 #endif