//\r
\r
//\r
+//Define static values\r
+//\r
+char *CHNLIB_String_Intenal_NullCString = "";\r
+\r
+//\r
//Declare internal functions\r
//\r
\r
void CHNLIB_String_Free(CHNLIB_String *strtag)\r
{\r
//strtagを解放する。\r
- \r
if(CHNLIB_StructureHeader_GetTypeID(strtag) != CHNLIB_STRUCT_ID_String){\r
return;\r
}\r
const char *CHNLIB_String_GetReferencePointerOfCString(const CHNLIB_String *strtag)\r
{\r
//strtagが格納している文字列へのポインタを返す。\r
- //strtag==Invalidの場合、NULLを返す。\r
+ //strtag->str==NULLの場合、constな空文字へのポインタを返す。\r
if(CHNLIB_StructureHeader_GetTypeID(strtag) != CHNLIB_STRUCT_ID_String){\r
return NULL;\r
}\r
\r
+ if(strtag->str == NULL){\r
+ return CHNLIB_String_Intenal_NullCString;\r
+ }\r
+ \r
return (const char *)strtag->str;\r
}\r
\r
\r
uint CHNLIB_String_GetCountOfContain(const CHNLIB_String *s, const CHNLIB_String *search)\r
{\r
- return CHNLIB_CString_GetCountOfContain(CHNLIB_String_GetReferencePointerOfCString(s), CHNLIB_String_GetReferencePointerOfCString(search));\r
+ return CHNLIB_UTF8_GetCountOfContain(CHNLIB_String_GetReferencePointerOfCString(s), CHNLIB_String_GetReferencePointerOfCString(search));\r
}\r
\r
//\r
\r
return i;\r
}\r
-\r
-uint CHNLIB_CString_GetCountOfContain(const char s[], const char search[])\r
-{\r
- //[Not implemented]\r
- uint count;\r
- int i;\r
- \r
- if(s == NULL || search == NULL){\r
- CHNLIB_ReportError("Null str.\n", CHNLIB_DEBUG_ARGUMENTS);\r
- return 0;\r
- }\r
- \r
- count = 0;\r
- for(i = 0; s[i] != '\0'; i++){\r
- if(CHNLIB_CString_CompareString(&s[i], search)){\r
- count++;\r
- }\r
- }\r
- return count;\r
-}\r
\r
//\r
//Internal functions\r